共计 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