本贴记录在将本地docker中的镜像推送到私有服务器的方法以及过程中遇到的问题
文章目录
一、本地环境
# linux版本:
Linux shier 5.17.8-arch1-1 #1 SMP PREEMPT Mon, 16 May 2022 20:45:27 +0000 x86_64 GNU/Linux
# docker版本:
Docker version 20.10.16, build aa7e414fdc
二、过程
1、在本地登陆远程服务器
docker login -u [用户名] [服务器地址:端口]
(1) 可能会出现的问题
Error response from daemon: Get https://[地址]/v2/: http: server gave HTTP response to HTTPS client
(2) 解决方法
1) 修改本地环境/etc/docker/daemon.json
文件
命令
sudo vim /etc/docker/daemon.json
添加在文件中添加内容:"insecure-registries": ["服务器地址及端口"]
2) 重新加载daemon
sudo systemctl daemon-reload
3) 重启docker
sudo systemd restart docker
再次登陆即可
2、给本地镜像打上标签
docker tag [本地镜像名]:[tag] [远程服务器地址及端口]/[远程服务器docker中项目的路径]:[tag]
注意: 标记后的镜像路径需要为远程服务器docker中已有的项目,否则将无法进行推送
3、将本地镜像推送至服务器
docker push [打上标签的镜像]:[tag]
(1) 可能会出现的问题
received unexpected HTTP status: 500 Internal Server Error
(2) 解决办法
1、仔细检查本地打上标签镜像的路径服务器docker项目中是否存在
若不存在则返回上步骤重新打标签重试即可
2、 检查本机linux服务器selinux是否为打开状态
getenforce
若为打开状态、则使用如下命令关闭即可
setenforce 0 (临时关闭selinux、若想永久关闭则修改/etc/selinux/config文件即可)