本次实验的目标是在上安装Docker私有镜像库。
- 拉取官方Registry镜像最新版,执行
- 在本地建立名为 docker_registry 的镜像保存目录
1 2 3 4
| mkdir ~/docker mkdir ~/docker/registry mkdir ~/docker/registry/data mkdir ~/docker/registry/config
|
- 编辑镜像库配置文件(使用文本编辑器), 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| version: 0.1 log: fields: service: registry storage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3
|
- 启动镜像库容器,并映射目录和配置文件
1
| docker run --name MyRegistry -d -p 5000:5000 -v /home/stu/docker/registry/data:/var/lib/registry -v /home/stu/docker/registry/config/config.yml:/etc/docker/registry/config.yml registry:2
|
- 验证安装
使用浏览器访问:
1
| http://localhost:5000/v2/_catalog
|
或是执行:
1
| curl http://localhost:5000/v2/_catalog
|
- 修改本地docker 设置文件 /etc/docker/daemon.json
加入http的本地镜像库访问
1
| sudo vi /etc/docker/daemon.json
|
加入如下设置:
“insecure-registries”: [“localhost:5000”]
注意,用你的实际ip替换 localhost
加入以后的文件内容为:
1 2 3 4
| { "registry-mirrors": [ "https://registry.docker-cn.com"], "insecure-registries": ["localhost:5000"] }
|
重启docker
1
| sudo systemctl restart docker
|
- 上传镜像到本地私有库中
1 2
| docker tag alpine-base localhost:5000/alpine-base docker push localhost:5000/alpine-base
|
- 验证上传
使用浏览器访问:
1
| http://localhost:5000/v2/_catalog
|
再访问
1
| http://localhost:5000/v2/apline-base/tags/list
|
- 从私有库拉取镜像
首先,删除本地的 alpine-base 镜像
执行以下命令拉取私有库镜像
1
| docker pull localhost:5000/alpine-base
|
执行 docker images 命令查看结果