公众号「后端进阶」 回复「后端」免费领取大礼包!

Docker实战(四)

2018-03-15
zch

我们都知道如果用 docker hub 来做仓库会很慢,因为docker hub 服务器在国外,那么现在有必要讲一下如何搭建一个 docker 私有仓库,并进行快速部署。

启动 registry 私有库容器

官方有个镜像叫 「registry」,它可以启动一个私有仓库,获取官方 registry 镜像命令如下:

docker pull registry

将 registry 镜像 pull 到本地后,通过镜像启动一个 registry 私有库容器,私有库地址会在容器内的 /var/lib/registry 路径下,如果需要将私有库挂载在本地路径下,还需要 -v 参数:

docker run -d -it \
    -p 5000:5000 \
    -v /data/registry/:/var/lib/registry \
    --name myregistry registry

registry

push 镜像到私有库

docker镜像名字命名规律:

<仓库地址>/<仓库名字>:<标签>

所以需要将本地镜像改成私有库地址的镜像:

docker tag objcoding/docker-maven-deploy:0.0.4 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

docker

Docker 默认不允许 http 方式 push 镜像,如果要用 http 来推送,则需要在 /etc/docker/ 目录下创建daemon.json,内容如下:

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "119.29.xxx.232:5000"
  ]
}

执行 push 命令:

docker push 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

push 过程:

docker

从私有库中 pull 镜像

前面我们已经将私有库挂载在本地目录了,查看一下刚刚 push 的镜像是否存在:

docker

发现刚刚 push 的镜像已经在本地目录了,这时我们需要将它 pull 下来:

docker pull 119.29.xxx.232:5000/docker-maven-deploy:0.0.4

运行镜像:

docker run -d -p 8085:8085 --name docker-maven-deploy 127.0.0.1:5000/docker-maven-deploy:0.0.4

微信公众号「Java科代表」

Content