docker安装私有仓库registry(离线)
离线本地仓库 192.168.55.240
有网客户机 192.168.153.129
一、现在正常网络下,使用docker pull拉取镜像
1.拉取镜像
docker pull registry
2.使用docker images查看已拉取的镜像id
docker images
3.将镜像保存为本地文件
docker save -o registry.docker 镜像id #会在当前目录下生成registry.docker的文件,将其copy传到离线机器
二、开始在离线机器192.168.55.240安装本地registry(私有仓库)
1.将下载打包后的镜像拷贝到要安装私有仓库的服务器运行
docker load -i ./registry.docker #加载镜像
2.如果docker images查看刚才加载的镜像名为空,如,可以用以下命令修改
#docker tag 镜像id 镜像名:版本郝
docker tag 2d4f4b5309b1 registry:latest
3.修改配置文件,添加一句信任私有仓库
vim /etc/docker/daemon.json
#添加y以下内容
{
"insecure-registries": ["192.168.55.240:5000"]
}
4.重启docker
systemctl restart docker
5.创建仓库存放仓库地址,并启动registry私有仓库
mkdir /data/registry
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry -- name private_registry registry
三、离线客户机192.168.55.240测试上传、拉拉取镜像
1.先在有正常网络的服务器下,使用docker pull正常拉取镜像,并保存打包并上传到需要测试的机器
docker pull nginx
docker pull centos
docker save -o nginx.docker 镜像ID #在当前目录下会生成一个registry.docker的文件,将其copy至U盘上。
docker save -o centos.docker 镜像ID
2.将下载打包后的镜像拷贝到要离线测试机后加载
docker load -i ./nginx.docker
docker load -i ./centos.docker
3.如果镜像名称为空,可以使用以下命令修改
#docker tag imageID 镜像名:版本号
docker tag 4bb46517cac3 nginx:latest
docker tag 0d120b6ccaa8 centos:latest
4.镜像打标签并命名
注意:客户端打标签命名很严格,不然等下传不上去,下载不了,必须带上私有仓库地址
# docker tag 源镜像名字:版本 私有仓库地址/镜像名字:版本
docker tag nginx:latest 192.168.55.240:5000/nginx:latest
docker tag centos:latest 192.168.55.240:5000/centos:latest
#重启docker
systemctl restart docker
5.上传镜像到离线私有仓库192.168.55.240
docker push 192.168.55.240:5000/nginx:latest
docker push 192.168.55.240:5000/centos:latest
6.最后登录192.168.55.240离线私有确认镜像情况
ls /data/registry/docker/registry/v2/repositories/
7.到客户机删除镜像后测试从私有仓库那里拉去镜像
删除客户机192.168.55.240:5000/nginx和192.168.55.240:5000/centos镜像
docker rmi 镜像id
或
docker rmi 镜像名:tag
去私有仓库拉取镜像
docker pull 192.168.55.240:5000/centos:latest
docker pull 192.168.55.240:5000/nginx:latest
以上内容参考docker 安装私有仓库 registry(离线) - 彭荣俭 - 博客园 (cnblogs.com)
=======================================================
由于公司要要从前端页面上传.tar文件到240机器上,需要设置docker远程访问。
Docker守护进程(dockerd)本身正在监听TCP端口2375。这通常用于Docker Engine API的远程访问,允许客户端通过HTTP连接到Docker守护进程。
想要开启远程访问,就需要修改下面这个配置文件,/usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
注意:两个-H
加载配置文件,重启docker
docker daemon-reload
systemctl restart docker
sudo netstat -tulpn | grep :2375
tcp6 0 0 :::2375 :::* LISTEN 3450149/dockerd
docker -H <虚拟机IP>:2375 ps #远程测试连接
仓库地址是http://192.168.55.240:5000
本页面中的仓库服务地址远程访问Docker守护进程(dockerd)本身正在监听TCP端口2375:tcp://192.168.55.240:2375
如果(http://192.168.55.240:5000/v2/)不可访问,可能是private_registry容器没启动
参考Docker如何开启远程访问,实现api远程管理?其实只需要改一个地方即可_怎么开启远程api接口-CSDN博客