Docker
安装
使用的是腾讯云服务器 linux
powershell
// 安装dnf-utils 的软件包
sudo dnf install -y dnf-utils
添加 Docker 的官方软件仓库到系统
powershell
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/
安装docker引擎
powershell
sudo yum install docker-ce docker-ce-cli containerd.io


验证安装
安装完成后,可以运行以下命令验证 Docker 是否安装成功:如图安装为29.2.0的docker版本
powershell
docker --version

启动docker
powershell
sudo systemctl start docker
运行一个测试容器
powershell
docker run hello-world
设置为开机自启(建议做)
powershell
sudo systemctl enable docker

Harbor
可以做镜像管理,支持 Docker 镜像的存储、分发和管理,提供完整的镜像生命周期管理功能。这儿主要用的也是这个特性。
安装
获取Harbor安装包
powershell
wget https://github.com/goharbor/harbor/releases/download/v2.13.0/harbor-offline-installer-v2.13.0.tgz
配置与部署
这是核心步骤,要根据服务器情况编辑配置文件并执行安装。
powershell
# 从模板复制配置文件
cp harbor.yml.tmpl harbor.yml
# 使用vim或nano编辑配置文件
vi harbor.yml
关键配置项说明: 在 harbor.yml 中,至少修改以下几处:
- hostname:设置为你的服务器公网IP地址(例如 192.0.2.10)或已解析到该IP的域名。请勿使用localhost或127.0.0.1。
- harbor_admin_password:修改一个强密码,切勿使用默认的 Harbor12345。
访问与验证
访问配置的ip地址,并且映射出端口号


配置docker
打开docker 修改配置文件,如果使用HTTP,在客户端机器的 /etc/docker/daemon.json 中添加

保存后重启docker,命令行为
powershell
sudo systemctl restart docker
登录并推送测试镜像
powershell
# 在客户端或服务器本身(也是一个Docker客户端)执行登录
docker login 49.232.200.4:8081
# 输入用户名密码
# 下载镜像
docker pull nginx
# 标记一个测试镜像并推送
docker tag nginx:latest 49.232.200.4:8081/library/nginx:v1.25
docker push 49.232.200.4:8081/library/nginx:v1.25


打包镜像
将本地的镜像文件通过DockerFile文件进行打包推送,以推送到harbor上。
新建一个文件 Dockerfile,dockerfile的文件如下
powershell
# 基础镜像
FROM python:3.9-alpine
# 工作目录
WORKDIR /app
# 所有命令合并为一行,无换行/反斜杠,100%语法正确
RUN echo "http://mirrors.aliyun.com/alpine/v3.22/main/" > /etc/apk/repositories && echo "http://mirrors.aliyun.com/alpine/v3.22/community/" >> /etc/apk/repositories && apk update || true && apk add --no-cache gcc musl-dev libffi-dev openssl-dev && pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple && pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn && pip install --upgrade pip --trusted-host pypi.tuna.tsinghua.edu.cn
# 可选:预装Python包(单行版)
RUN pip install flask pandas requests --trusted-host pypi.tuna.tsinghua.edu.cn
# 启动命令
CMD ["python"]
打包该镜像的详细命令:
powershell
docker build -t 49.232.200.4:8081/app/my-python:3.9 .
其中,docker build 是 Docker 构建镜像的主命令;
-t 49.232.200.4:8081/app/my-python:3.9是给镜像打「标签(Tag)」:
- 其中-t(等价--tag),是docker build最常用的选项
- 49.232.200.4:8081私有镜像仓库的地址 + 端口(你的个人服务器 IP + 仓库端口,如 Harbor / 私有 Registry),若省略这部分,镜像会标记为「本地镜像」,无法推送到远程仓库
- app是命名空间(Namespace)」,用于归类镜像(比如按项目 / 部门划分,如app/test/prod)
- my-python是镜像名(核心标识,自定义,需见名知意,比如你的 Python 环境镜像);
- 3.9是镜像版本(Tag),建议用语义化版本(如3.9/3.9.0/latest),避免混用latest(易混乱);
最后 . 是指定「构建上下文(Build Context)」路径,Docker 会把这个目录下的所有文件和子目录作为「构建上下文」,发送给 Docker daemon;
Dockerfile中的COPY/ADD指令,只能复制「构建上下文内」的文件(比如COPY ./app.py /app/ 只能复制当前目录下的app.py)。
镜像推送命令,推送至harbor:
powershell
docker push 49.232.200.4:8081/app/my-python:3.9

可以通过docker命令查看镜像
powershell
docker images

推送后截图如下

在harbor中验证:
