docker push image 到私服

一、操作步骤

1、重命名镜像名,保证名字唯一

docker tag image_id register_host/<user name>/image_name

[root@local-vm-319 ~]$ docker images|grep logstash                    
logstash                               7.8.3        4a732da07bbe        5 weeks ago         566MB

[root@local-vm-319 ~]$ docker tag 4a732da07bbe 192.168.1.100:443/root/logstash:7.8.3

2、登录 docker 服务器

docker login -u username -p password register_host

[root@local-vm-319 logstash-image]$ docker login -u root -p test123 192.168.1.100:443
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/bigdata/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

3、推送至私服

[root@local-vm-319 logstash-image]$ docker push 192.168.1.100:443/root/logstash:7.8.3
The push refers to repository [192.168.1.100:443/root/logstash]
099536afcc46: Pushed 
beee62a48167: Pushed 
19cd015fd334: Pushed 
f6b5fa5e0e7a: Pushed 
dfd5ce24e913: Pushed 
13b81819ffec: Pushed 
19cd2cdab5df: Pushed 
15d6fc91da93: Pushed 
eb5a1e495921: Pushed 
180013f25e33: Pushed 
e7b65473959d: Pushed 
ed0aa6ab7d49: Pushed 
174f56854903: Pushed 
7.8.3: digest: sha256:3a0f24b826b188344d55a20e47e1d9165a0e6d0206e3ce20ab78de0d0cdf6d3d size: 3245

二、可能遇到的问题

1、x509 certificate signed by unknown authority error

[root@local-vm-319 docker]$  docker push 192.168.1.100:443/root/logstash:7.8.3
The push refers to repository [192.168.1.100:443/root/logstash]
Get https://192.168.1.100:443/v2/: x509: certificate signed by unknown authority

原因分析:

  1. 没有登录到docker服务器
  2. 登录机器没有安装签名证书

解决办法:

对于没有安装签名证书,则需将自签名证书复制到 /etc/docker/certs.d/<your_registry_host_name>:<your_registry_host_port>/ca.crt 安装到 docker login 命令的机器上,让 docker 信任自签名证书。

eg:

docker login from host: local-vm-310, ip: 192.168.1.200

docker register server host: local-vm-319, ip: 192.168.1.100

[root@local-vm-310 docker]$  mkdir -p /etc/docker/certs.d/192.168.1.100:443

[root@local-vm-310 docker]$  scp 192.168.1.100:/opt/registry/certs/domain.crt /etc/docker/certs.d/192.168.1.100:443/ca.crt

要将 Docker 镜像上传到私有仓库,首先需要确保镜像已被正确标记以指向目标私有仓库的地址。Docker 的机制要求通过 `docker tag` 命令将镜像重新命名,包含私有仓库的域名或 IP 地址[^1]。例如: ```bash docker tag test-image [YOUR-DOMAIN]/test-image ``` 其中 `[YOUR-DOMAIN]` 应替换为你的私有仓库的实际地址。 完成标签操作后,下一步是使用 `docker push` 命令将镜像推送到指定的私有仓库中: ```bash docker push [YOUR-DOMAIN]/test-image ``` 在推送之前,请确认你已经登录到了目标私有仓库。如果没有登录,可以使用以下命令进行登录: ```bash docker login [YOUR-DOMAIN] ``` 输入用户名和密码后,即可完成身份验证,从而允许你推送镜像到该私有仓库。 此外,在推送镜像前,建议使用 `docker images` 命令检查本地已有的镜像列表,以确认目标镜像已经被正确标记并准备就绪[^2]。 如果你是通过 Dockerfile 构建镜像,确保 Dockerfile 中的基础镜像、工作目录、依赖安装等步骤都已正确定义,并且构建过程无误。例如,一个典型的 Dockerfile 可能包含如下内容: ```Dockerfile FROM ubuntu LABEL description="web compare tool" \ maintainer="****" WORKDIR /webCompareTool RUN apt-get -qq update && \ apt-get -qq install python && \ apt-get -qq -y install python-pip && \ pip install --upgrade pip && \ pip install django && \ pip install bs4 && \ pip install selenium && \ pip install html2text && \ pip install pillow && \ pip install diff_match_patch && \ apt-get -qq -y install wget && \ apt-get -qq -y install unzip && \ wget https://chromedriver.storage.googleapis.com/2.40/chromedriver_linux64.zip && \ unzip chromedriver_linux64.zip && \ chmod 777 chromedriver && \ cp chromedriver /usr/bin/ && \ apt-get -qq install chromium-browser ADD . /webCompareTool/ EXPOSE 5000 RUN python ComDetailPage/manage.py migrate ``` 构建完成后,再执行上述的 `docker tag` 和 `docker push` 操作即可完成镜像上传。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic_kid_2010

你的支持将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值