Linux 下的 Docker 安装及创建私有仓
搭建私有仓库
1、相关目录和文件的的创建,如果目录已存在,无需创建
我这里直接放home目录,无需创建,/docker/registry会自动创建,最终仓库目录:/home/docker/registry
2、拉取私有仓镜像
sudo docker pull registry
注:不带版本默认拉取 latest,如果需要知道版本,请带版本号
sudo docker pull registry:2.1.1
3、创建私有仓
sudo docker run -d -v /home:/var/lib/registry -p 5000:5000 --restart=always --name myregistry registry
带版本号:
sudo docker run -d -v /home:/var/lib/registry -p 5000:5000 --restart=always --name myregistry registry:2.1.1
注:
/home/docker/registry : 私有仓地址
–name myregistry :私有仓名称
–restart=always:自启动
4、查看信息 docker ps
显示私有仓信息
浏览器访问:https://192.168.8.25:5000/v2
私有仓创建成功
私有仓常用命令
停止
docker stop myregistry
启动
docker start myregistry
重启
docker restart myregistry
删除
docker rm myregistry
设置自启动
docker update --restart=always ccab8da93b75
查看镜像容器
docker ps -a
查看镜像
curl -XGET http://192.168.8.25:5000/v2/_catalog
curl -XGET http://192.168.8.25:5000/v2/myapi/tags/list
推送镜像到私有仓
1、设置自己本地win机器 Docker 镜像仓库 :http://192.168.8.25:5000
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"insecure-registries": [
"http://192.168.8.25:5000"
]
}
2、 标记本地镜像myapi
docker tag myapi 192.168.8.25:5000/myapi
注:不标记无法识别tag,会报错
3、推送到私有仓
docker push 192.168.8.25:5000/myapi
4、查看私有仓镜像信息
服务器运行命令:
curl -XGET http://192.168.8.25:5000/v2/_catalog
curl -XGET http://192.168.8.25:5000/v2/myapi/tags/list
浏览器打开 http://192.168.8.25:5000/v2/_catalog、http://192.168.8.25:5000/v2/myapi/tags/list 也可以
镜像推送成功
Linux服务器拉取镜像并运行
1、设置服务器镜仓库
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [ "https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"],
"insecure-registries": [
"http://192.168.8.25:5000"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
重新启动完成
2、拉取镜像
docker pull 192.168.8.25:5000/myapi
注:若拉取失败,请检查私有仓是否正常运行,未运行请启动运行
3、运行容器
docker run -d -p 5001:80 --name myservice1 192.168.8.25:5000/myapi
4、查看容器
5、浏览器启动,访问api http://192.168.8.25:5001/api/product/getall
顺利获取到信息
完美收工!
下一章,明天继续尝试如何给私有仓加用户名和密码
https://blog.csdn.net/weixin_41003771/article/details/118788131
踩坑记录:
1、私有仓没设置成自启动,docker重启后,私有仓没启动,无法访问
创建私有仓时,一定要 带上 --restart=always
若忘记设置了,请用命令设置(这个命令很难找,资料很少,半天才找到)
docker update --restart=always ccab8da93b75
私有仓未启动时,报错内容:
Get http://192.168.8.25:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
2、insecure-registries 一定要设置
报错内容:
Error response from daemon: Get https://192.168.8.25:5000/v2/: http: server gave HTTP response to HTTPS client