Docker配置從私有倉庫拉取鏡像方式
修改Docker配置文件
修改docker的配置文件daemon.json,如果配置文件不存在則直接創(chuàng)建。
vim /etc/docker/daemon.json
文件內(nèi)容如下,其中insecure-registries屬性值“registry.luntek-inc.com”代表私有倉庫的地址,你需要將registry.luntek-inc.com改成你自己的私有倉庫地址,registry-mirrors配置的是國內(nèi)的docker鏡像倉庫地址,讓下載鏡像速度更快
{ "insecure-registries": [ "registry.luntek-inc.com" ], "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
編輯完成后重新加載配置文件并且重啟docker
systemctl daemon-reload systemctl restart docker
注:如果報(bào)如下錯(cuò)誤說明daemon.json文件格式錯(cuò)誤,請(qǐng)仔細(xì)檢查空格或者逗號(hào)
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
docker重啟完成后使用docker info
指令查看docker配置的私有倉庫地址是否生效
配置正確的DNS
這個(gè)根據(jù)自身情況確定,如果私有docker倉庫的dns與本機(jī)電腦的dns一致則可以不配置,否則的話在執(zhí)行docker pull
時(shí)會(huì)報(bào)如下錯(cuò)誤
docker pull registry.luntek-inc.com:10443/prod/luntek-triplink-store:0.0.2
Error response from daemon: Get "https://registry.luntek-inc.com:10443/v2/": dial tcp: lookup registry.luntek-inc.com on 192.168.254.*****: no such host
如果出現(xiàn)如下錯(cuò)誤,則需要先確認(rèn)私有倉庫的dns,然后在拉取鏡像的電腦上配置DNS信息即可,查看私有倉庫的DNS有三種方法
方法一
查看私有倉庫電腦的dns配置文件
cat /etc/resolv.conf
方法二
查看私有倉庫電腦的網(wǎng)卡文件
cd /etc/sysconfig/network-scripts/ ls # 查看ifcfg-開頭的網(wǎng)卡文件 cat ifcfg-enp4s0
方法三
查看局域網(wǎng)下相同電腦能連接的電腦
LZ最后是將自己windows的dns配置過去才可以,懷疑254.3可能是優(yōu)先或者高層的dns,配置好dns后不再報(bào)錯(cuò)no such host
登錄私有倉庫docker賬號(hào)
使用命令登錄私有倉庫docker賬號(hào)
docker login -u admin -p YourPwd http://192.168.254.8:8080
http://192.168.254.8:8080為私有倉庫地址
添加私有倉庫地址
不添加的話在拉取鏡像時(shí)會(huì)報(bào)如下錯(cuò)誤
Error response from daemon: Get "https://****": x509: certificate signed by unknown authority
1、登陸私有倉庫服務(wù)器,進(jìn)入/etc/docker/certs.d/目錄下,找到ca.crt證書
2、將該證書拷貝一份到目標(biāo)主機(jī)(即使用docker pull主機(jī))上,并放在/etc/docker/certs.d/下
3、重啟docker服務(wù)
systemctl daemon-reload systemctl restart docker
4、登陸該私有倉庫docker login *******,輸入用戶名密碼后,登陸成功便可以使用docker pull拉取鏡像
登錄成功后可以使用指令查看登錄信息
cat /root/.docker/config.json
解決證書問題
正常到這里應(yīng)該是可以直接拉鏡像了如果不能的話可以參考一下
由于lz添加證書的方法不對(duì)所以導(dǎo)致一直無法正常docker pull
文件,并且一直報(bào)如下的錯(cuò)
Error response from daemon: Get "https://registry.luntek-inc.com:10443/v2/": x509: certificate signed by unknown authority
方法一:將docker倉庫的證書放到本地服務(wù)器
切到服務(wù)器端(docker倉庫機(jī)器)默認(rèn)證書地址cd /etc/docker/certs.d/
,由于lz配置的時(shí)候放置在域名下,所以會(huì)有一些不同,根據(jù)自己情況而定。
如果沒有的話需要重新生成,然后將文件拷貝下來備用,此文件需要放到使用docker pull
的機(jī)器上
本地電腦(docker pull的機(jī)器)上進(jìn)行的操作
- 安裝ca-certificates
yum -y install ca-certificates
- 將ca.crt證書文件放入 /usr/share/pki/ca-trust-source/anchors
- 更新證書文件
update-ca-trust
如上命令執(zhí)行完成后etc/ssl/certs/ca-bundle.crt 以及/etc/ssl/certs/ca-bundle.trust.crt就包含了新的自定義證書,可以使用指令查看tail -n20 /etc/ssl/certs/ca-bundle.crt
重啟docker,再次從本地私有倉庫拉鏡像就可以成功
systemctl restart docker docker pull registry.luntek-inc.com:10443/prod/luntek-triplink-store:0.0.2
鏡像拉取成功
方法二:系統(tǒng)時(shí)間不同步
先使用date
命令查看系統(tǒng)當(dāng)前時(shí)間,如果明顯有問題,就要用到另外一個(gè)工具:ntpdate,如果沒有此命令,安裝即可
- ubuntu:
apt install -y ntpdate
- centos:
yum install -y ntpdate
- 更新同步時(shí)間
ntpdate cn.pool.ntp.org
再次使用date
命令查看當(dāng)前系統(tǒng)時(shí)間,確認(rèn)沒問題再拉取鏡像
方法三:daemon.json文件配置有問題
證書的問題需要編輯 daemo.json 文件:vi /etc/docker/daemon.json
- 參考格式如下:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], "insecure-registries":[ "172.xx.xxx.xxx:4433", "reg-cloud.xxxxx.com" ] }
- 重啟docker:
systemctl daemon-reload systemctl restart docker
到這里基本上就能解決大部分的證書問題
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker安裝并持久化postgresql數(shù)據(jù)庫的操作步驟
這篇文章主要介紹了docker安裝并持久化postgresql數(shù)據(jù)庫的操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12docker中nginx卸載、安裝、配置及掛載詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于docker中nginx卸載、安裝、配置及掛載的相關(guān)資料,文中通過實(shí)例代碼介紹是非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09解讀Dockerfile中CMD和ENTRYPOINT是否可以混著用
在Dockerfile中,CMD和ENTRYPOINT可以混著用,CMD指定默認(rèn)命令,ENTRYPOINT指定啟動(dòng)命令,CMD可以被docker run命令的參數(shù)覆蓋2025-03-03dockerfile發(fā)布springboot項(xiàng)目實(shí)踐
使用Docker的其中一個(gè)目的,是為了更加簡單,方便的部署我們編寫的服務(wù),本文主要介紹了dockerfile發(fā)布springboot項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08半小時(shí)實(shí)現(xiàn)基于ChatGPT搭建微信機(jī)器人
這篇文章主要為大家介紹了基于ChatGPT搭建微信機(jī)器人過程示例詳解,半小時(shí)就能完成,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Docker 容器監(jiān)控原理及 cAdvisor的安裝與使用說明
這篇文章主要介紹了Docker 容器監(jiān)控原理及 cAdvisor的安裝與使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11基于CentOS8系統(tǒng)使用Docker搭建Gitlab的詳細(xì)教程
這篇文章主要介紹了基于CentOS8系統(tǒng)使用Docker搭建Gitlab教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10