Docker-仓库

Docker仓库用于镜像的存储,是镜像分发、部署的关键。

Docker官方提供了公有仓库Docker Hub,国内也有一些公有仓库,我们也可以自己搭建私有的Docker仓库。

1.Docker Hub

Docker默认使用官方的公有仓库Docker Hub,搜索、下载镜像无需账号,上传镜像则需要账号认证。

相关命令

# 登录Docker Hub
docker login
# 上传镜像
docker push IMAGE:VERSION
# 搜索镜像
docker search IMAGE
# 下载镜像
docker pull IMAGE
# 从Docker 中国官方镜像加速服务器下载镜像
docker pull registry.docker-cn.com/library/openjdk:11-jre

2.私有仓库

某些场景下,由于网络、安全、网速等原因,公有仓库并不合适,我们需要构建自己的私有仓库。Docker官方提供了docker-registry组件,方便我们快速构建私有镜像。需要注意的是docker-registry现在已经更新到v2版本,并且使用了新的项目名称docker-distribution

2.1 镜像方式构建私有仓库

Docker官方提供了docker-registry的镜像,直接使用该镜像是最简单的方式。使用以下命令,Docker会自动从Docker Hub拉取docker-registry的镜像,然后启动docker-registry服务,docker-registry默认监听5000端口。

docker run -d -p 5000:5000 --restart always --name docker-registry registry

如果需要设置环境变量,可以使用-e设置参数。

2.2 RPM包方式构建私有仓库

EPEL中已经包含docker-registry的包,通过yum工具可以直接安装。

yum install -y docker-distribution

启动服务、查看服务状态

systemctl start docker-distribution && systemctl status docker-distribution
2.3 构建安全的私有仓库

To be continued...

2.4 使用私有仓库

查看Registry中所有镜像信息(以下示例中,假定私有仓库的ip地址为192.168.100.101)

curl http://192.168.100.101:5000/v2/_catalog

上传镜像

docker push 192.168.100.101:5000/:latest

从私有仓库下载镜像

docker pull 192.168.100.101:5000/:latest

从私有仓库pull镜像并启动

docker run -it 192.168.100.101:5000/:latest
2.5 说明

为了安全起见,docker默认不允许不安全的私有仓库,如果要使用上述私有仓库,需要修改部分配置。

/etc/docker/daemon.json

{ "insecure-registries": ["172.18.20.54:8000"] }

/lib/systemd/system/docker.service中添加EnvironmentFile属性

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
EnvironmentFile=-/etc/docker/daemon.json
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

完成上述修改后,docker需要重启才能生效。

你可能感兴趣的:(Docker-仓库)