统信UOS中Docker服务部署需依次完成镜像拉取、容器运行、端口映射Web服务、自定义镜像构建及资源约束管理;含国内镜像加速配置、Alpine测试、Nginx部署、Flask应用构建与容器资源限制等完整流程。

如果您已在统信UOS系统中成功安装并启动Docker服务,但尚未运行具体应用容器,则需通过镜像拉取、容器创建与启动等标准流程完成服务部署。以下是执行容器化服务部署的步骤:
一、拉取并验证基础镜像
在运行应用前,必须确保目标镜像已存在于本地或可从可信仓库获取。统信UOS默认支持Docker Hub及国内镜像源,推荐优先使用国内加速镜像以提升拉取效率与稳定性。
1、配置Docker国内镜像加速器:编辑或新建/etc/docker/daemon.json文件,写入以下内容(若文件不存在请创建):
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"]}
2、重启Docker守护进程使配置生效:
sudo systemctl daemon-reload && sudo systemctl restart docker
3、拉取官方Alpine Linux轻量镜像用于测试:
sudo docker pull alpine:latest
4、确认镜像已成功下载:
sudo docker images | grep alpine
二、运行无状态应用容器
对于日志输出型、单次执行或调试用途的应用,可直接以前台交互模式或后台守护模式启动容器,无需额外配置网络或存储卷。
1、以后台方式运行一个持续打印时间戳的Alpine容器:
sudo docker run -d --name test-clock alpine:latest /bin/sh -c "while true; do date; sleep 5; done"
2、查看该容器实时日志:
sudo docker logs -f test-clock
3、停止并删除该测试容器:
sudo docker stop test-clock && sudo docker rm test-clock
三、部署带端口映射的Web服务
部署Nginx等监听网络端口的服务时,需显式声明宿主机端口与容器内端口的映射关系,并确保防火墙策略允许对应端口通信。
1、拉取官方Nginx镜像:
sudo docker pull nginx:alpine
2、运行Nginx容器并映射80端口:
sudo docker run -d --name my-nginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html:ro nginx:alpine
3、在宿主机创建静态页面目录并写入测试文件:
sudo mkdir -p /var/www/html && echo "<h1>Welcome to UOS + Docker</h1>" | sudo tee /var/www/html/index.html
4、验证服务是否响应:
curl http://localhost:8080
四、使用自定义Dockerfile构建应用镜像
当现有镜像无法满足业务需求时,可通过编写Dockerfile定义构建上下文,将源码、依赖和运行环境打包为专属镜像,保障部署一致性。
1、创建项目目录并进入:
mkdir ~/myapp && cd ~/myapp
2、编写最小化Python Flask应用文件app.py:
echo "from flask import Flask\napp = Flask(__name__)\n@app.route('/')\ndef hello():\n return 'Hello from UOS Docker!'\nif __name__ == '__main__':\n app.run(host='0.0.0.0:5000')" > app.py
3、编写Dockerfile:
echo "FROM python:3.9-slim\nWORKDIR /app\nCOPY app.py .\nRUN pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple/\nEXPOSE 5000\nCMD [\"python\", \"app.py\"]" > Dockerfile
4、构建镜像:
sudo docker build -t my-flask-app .
5、运行容器并映射端口:
sudo docker run -d --name flask-demo -p 5000:5000 my-flask-app
五、管理容器生命周期与资源约束
生产环境中需对容器施加CPU、内存等资源限制,并设置自动重启策略,防止异常退出导致服务中断。
1、启动一个受限容器:分配最多512MB内存、1个CPU核心,失败时自动重启:
sudo docker run -d --name limited-app --memory=512m --cpus=1 --restart=on-failure:5 my-flask-app
2、查看容器资源使用情况:
sudo docker stats limited-app --no-stream
3、进入正在运行的容器执行诊断命令:
sudo docker exec -it limited-app /bin/sh
4、停止并清理该容器:
sudo docker stop limited-app && sudo docker rm limited-app

















