阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署内网Docker Registry

195次阅读
没有评论

共计 3745 个字符,预计需要花费 10 分钟才能阅读完成。

目前 docker 已经分为社区版 (docker CE)和 商业版(docker EE), 最新的版本由原来的 1.13 直接跳到了 17.06,目前由于 17.06 的刚刚发布,在使用 Docker 的时候可以根据自己的需求选择相应的版本。

Docker 安装
先移除其他非官方的版本:

yum -y remove docker docker-common container-selinux
yum -y remove docker-selinux

添加 yum 源,这里选择 1.13 的版本:
yum install -y yum-utils
yum-config-manager –add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/CentOS/docker.repo

对 yum 仓库快速缓存:

yum makecache fast

安装 docker:

yum -y install docker-engine-1.13.1

如果对版本有特殊要求,这里可以使用如下命令,列出可选的版本信息,然后指定版本安装:
yum list docker-engine.x86_64  –showduplicates |sort -r

在启动的配置文件中添加国内的镜像仓库:

vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd –registry-mirror https://qxx96o44.mirror.aliyuncs.com

启动 docker:

systemctl start docker

Docker Registry

我们可以使用 docker registry 作为我们的私有镜像仓库,当本地制作好镜像后,可以直接上传到镜像仓库中,方便其他主机拉取镜像。

在生产环境中,官方建议使用权威的 CA 证书,如果我们可以申请到公共的 CA 证书,就可以部署我们的共有镜像仓库。
也可以通过创建私有的证书,在需要访问仓库的主机上添加认证即可。
由于目前都是内部使用,加上服务器权限控制非常严格,所以这里直接使用免 CA 证书的方式(官方强烈不推荐)
修改 registry 配置为免 CA 模式,指定 Registry 服务器的域名或者 IP 地址,并指定访问端口(端口可任意,和 registry 容器端口映射上即可)
创建 daemon.json:
vim /etc/docker/daemon.json

 {
  “insecure-registries” : [“192.168.60.18:5000”]
}

重启 docker 服务:
systemctl restart docker

配置用户密码
mkdir auth

下载 registry 镜像,并配置账户密码:

docker run  –entrypoint htpasswd registry -Bbn trying 123123 > auth/htpasswd

这个命令会拉取 registry 镜像,以 htpasswd 的方式对密码进行加密,指定用户 trying 和密码 123123,并将密码存在指定文件中。
启动容器仓库:
docker run -d -p 5000:5000 –restart=always –name registry_docker \
-v `pwd`/auth:/auth -e “REGISTRY_AUTH=htpasswd” \
-e “REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm” \
-e “REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd” registry:2

指定容器的映射端口,容器启动时应用自动启动,指定一个数据卷,挂载验证文件 htpasswd, 并指定验证信息。

使用账号登录仓库,输入账号密码:
docker login 192.168.60.18:5000

推送本地镜像到仓库:

docker tag 256ab8c63c04 192.168.60.18:5000/self-registry:v1
docker push 192.168.60.18:5000/self-registry:v1

其他主机下载镜像:
在另外一台需要获取镜像的主机上配置 registry 为无 CA 模式:
vim /etc/docker/daemon.json

 {
  “insecure-registries” : [“192.168.60.18:5000”]
}

启动 docker, 登录:
docker login 192.168.60.18:5000
docker pull 192.168.60.18:5000/self-registry:v1

拉取成功:
# docker images
REPOSITORY                        TAG                IMAGE ID            CREATED            SIZE
192.168.60.18:5000/self-registry  v1                  256ab8c63c04        About an hour ago  401 MB

补充说明:

1、内网的其他主机如果需要从本地仓库拉取镜像,都需要添加 daemon.json 的文件。
2、在 registry 的容器中,我们可以看到挂载的宿主机磁盘信息:
# df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  80.0G      3.3G    76.7G  4% /
/dev/vda1                80.0G      3.3G    76.7G  4% /auth
/dev/vda1                80.0G      3.3G    76.7G  4% /etc/resolv.conf
/dev/vda1                80.0G      3.3G    76.7G  4% /etc/hostname
/dev/vda1                80.0G      3.3G    76.7G  4% /etc/hosts
/dev/vda1                80.0G      3.3G    76.7G  4% /var/lib/registry

在容器中,镜像的存放位置为 /var/lib/registry/docker/registry/v2/repositories/  那么对应的宿主机目录是 /var/lib/docker/image/
可以在启动 registry 时, 挂载宿主机上指定的目录到容器的 /var/lib/registry 上, 当容器发生故障后,可以重启一个新的,存储的镜像不会有任何影响。
这里将 docker 镜像仓库映射到宿主机的 /data/images 目录下:
docker run -d -p 5000:5000 –restart=always –name registry1 -v `pwd`/auth:/auth \
-v /data/images:/var/lib/registry -e “REGISTRY_AUTH=htpasswd” \
-e “REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm” \
-e “REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd” registry:2

3、如果我们要改变 registry 宿主机上的映射端口,所有的主机上的 daemon.jason 文件都需要修改为对应的端口,并重启 docker 服务。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm

Docker 创建基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm

Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm

使用 Docker 分分钟启动常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm

Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法  http://www.linuxidc.com/Linux/2017-05/143862.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146133.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3745字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中