一、基于容器创建新镜像
当我们在容器内进行了一些变更操作后,可以通过 docker commit 命令生成一个新的镜像,实现镜像的定制化。
docker commit -m="提交的描述信息" \
-a="作者" <容器ID> <新镜像名>:<版本标签>
后面我们还会讲解通过 Dockerfile 的方式构建镜像。
二、推送镜像到远程仓库-私有仓库
1. 首先我们需要搭建一个私有镜像仓库:
# 下载 registry 镜像,
# 用于搭建私有仓库
docker pull registry
# 运行 registry 容器
docker run -d --privileged=true \
-p 5000:5000 \
-v /opt/docker/registry:/tmp/registry \
registry
registry 默认是不支持 http 的推送的,所以需要修改如下配置,取消该限制。
修改 /etc/docker/daemon.json 文件,添加 insecure-registries 配置,修改后重启 docker 服务:
{
"registry-mirrors": ["https://01e3hiyl.mirror.aliyuncs.com"],
"insecure-registries":["localhost:5000"]
}
该私有镜像仓库无管理界面,可以通过 curl 查询仓库内的镜像信息:
curl http://localhost:5000/v2/_catalog
2. 推送本地镜像到私有仓库:
# 给镜像打上标签
# docker tag <本地镜像ID> <Host>:<Port>/<远程仓库名称>:<版本tag>
docker tag liwy-ubuntu \
localhost:5000/liwy-ubuntu:0.1
# 推送镜像到远程仓库
docker push \
localhost:5000/liwy-ubuntu:0.1
3. 从私有仓库拉取镜像到本地
docker pull \
localhost:5000/liwy-ubuntu:0.1
三、推送镜像到远程仓库-阿里云
1. 登陆阿里云创建镜像仓库
2. 上传镜像到仓库
# 登录
docker login --username=<用户名> \
registry.cn-hangzhou.aliyuncs.com
# 给镜像打上标签
docker tag <本地镜像ID> \
registry.cn-hangzhou.aliyuncs.com/<命名空间>/<仓库名称>:<镜像版本号>
# 将镜像推送到远程仓库
docker push \
registry.cn-hangzhou.aliyuncs.com/<命名空间>/<仓库名称>:<镜像版本号>
3. 拉取镜像到本地
docker pull \
registry.cn-hangzhou.aliyuncs.com/<命名空间>/<仓库名称>:<镜像版本号>