Centos7.6 usa docker-compose1.27.4 offline para construir o docker2.0.4 private mirror warehouse versão 19.03.13

índice

 

1. Construir o ambiente

Dois, pegue o pacote rpm, instale o docker

Três, instale docker-compose

Quarto, faça o certificado SSH primeiro

Cinco, instale e configure o porto

 


1. Construir o ambiente

 

IP Ambiente de hardware A Internet efeito
192.168.44.100 máquina virtual centos7.6, 2vCUPs de 4 GB de memória Intranet analógica Implantar docker-ce, docker-compose, armazém do porto
192.168.44.110 máquina virtual centos7.6, 1vCUPs2GB de memória Extranet analógica Baixe pacotes rpm, pacotes de software, mirrors, etc. relacionados.
  Computador host Extranet  

Dois, pegue o pacote rpm, instale o docker

1. Primeiro, baixe o pacote rpm necessário para a instalação offline do docker da Internet. Como o ambiente de instalação é diferente, os pacotes rpm listados podem não ser usados, mas é recomendado baixar todos eles.

# 安装docker所需的全部rpm包如下:
docker-ce-cli-19.03.13-3.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm 
libcgroup-0.41-21.el7.x86_64.rpm 
python-IPy-0.75-6.el7.noarch.rpm 
setools-libs-3.3.8-4.el7.x86_64.rpm
libsemanage-python-2.5-14.el7.x86_64.rpm
audit-libs-2.8.5-4.el7.x86_64.rpm
audit-2.8.5-4.el7.x86_64.rpm
audit-libs-python-2.8.5-4.el7.x86_64.rpm
policycoreutils-2.5-34.el7.x86_64.rpm
policycoreutils-python-2.5-34.el7.x86_64.rpm 
container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm 
containerd.io-1.4.3-3.1.el7.x86_64.rpm 
docker-ce-19.03.13-3.el7.x86_64.rpm

# 部分系统环境只需要以下4个包
docker-ce-cli-19.03.13-3.el7.x86_64.rpm
container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
containerd.io-1.4.3-3.1.el7.x86_64.rpm
docker-ce-19.03.13-3.el7.x86_64.rpm

# 极少数情况需要升级原有的依赖包,请参考其他升级文档

Endereço para download 1: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

Download do link 2: http://mirrors.aliyun.com/docker-ce/linux/centos/

Este artigo não recomenda esta forma de baixar pacotes rpm um por um no site, por favor, veja o próximo método

2. O computador host cria uma nova máquina virtual de rede externa com instalação minimizada centos7.6. A ideia é: baixar o pacote rpm da rede externa para o diretório / tmp local e, em seguida, transferir o pacote rpm para o diretório / tmp na rede interna para instalação. Preste atenção especial à instalação mínima da máquina virtual, para garantir que o pacote rpm baixado relacionado ao docker seja o mais completo.

Supondo que a máquina virtual tenha sido instalada e a rede configurada, execute as seguintes operações no terminal SSH.

# 安装wget
sudo yum -y install wget 

# 备份yum源
cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo_bak

# 下载yum的阿里云
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清除yum源并重新建立缓存
sudo yum clean all && yum makecache

# 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新Docker-CE
sudo yum makecache fast 

# 查看可安装的docker-ce版本
yum list docker-ce.x86_64 --showduplicates | sort -r

# 下载docker相关的rpm包,--downloadonly参数的作用是只下载相关rpm包,不安装。
sudo yum -y install --downloadonly --downloaddir=/tmp docker-ce-19.03.13 docker-ce-cli-19.03.13

# 查看rpm包是否已经下载到/tmp目录
[root@localhost tmp]# ll
总用量 100856
-rw-r--r--. 1 root root   261632 8月  23 2019 audit-2.8.5-4.el7.x86_64.rpm
-rw-r--r--. 1 root root   104408 8月  23 2019 audit-libs-2.8.5-4.el7.x86_64.rpm
-rw-r--r--. 1 root root    78256 8月  23 2019 audit-libs-python-2.8.5-4.el7.x86_64.rpm
-rw-r--r--. 1 root root   302068 11月 12 2018 checkpolicy-2.5-8.el7.x86_64.rpm
-rw-r--r--. 1 root root 34677436 12月  9 09:48 containerd.io-1.4.3-3.1.el7.x86_64.rpm
-rw-r--r--. 1 root root    40816 7月   6 22:33 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
-rw-r--r--. 1 root root 25268380 9月  18 03:06 docker-ce-19.03.13-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 40247476 12月 10 11:06 docker-ce-cli-19.03.13-3.el7.x86_64.rpm
-rw-r--r--. 1 root root    67720 8月  23 2019 libcgroup-0.41-21.el7.x86_64.rpm
-rw-r--r--. 1 root root   115284 11月 12 2018 libsemanage-python-2.5-14.el7.x86_64.rpm
-rw-r--r--. 1 root root   938736 4月   4 2020 policycoreutils-2.5-34.el7.x86_64.rpm
-rw-r--r--. 1 root root   468316 4月   4 2020 policycoreutils-python-2.5-34.el7.x86_64.rpm
-rw-r--r--. 1 root root    32880 7月   4 2014 python-IPy-0.75-6.el7.noarch.rpm
-rw-r--r--. 1 root root   635184 11月 12 2018 setools-libs-3.3.8-4.el7.x86_64.rpm
[root@localhost tmp]# 

3. Faça upload do pacote rpm baixado na etapa anterior para a intranet / tmp e execute a instrução de instalação no diretório / tmp.

# 进入rpm包所在目录,执行安装语句
cd /tmp
yum -y localinstall *.rpm

# 启动docker并加入开机自启
systemctl start docker && systemctl enable docker

# 查看docker版本
[root@localhost tmp]# docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Três, instale docker-compose

1. A instalação do docker-compose é muito simples. Faça upload do pacote de download da rede externa para o diretório da rede interna: / usr / local / bin /, endereço de download: https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64

Se o download do pacote for lento, você pode deixar uma mensagem e me pedir para pegá-lo

[root@localhost bin]# ll
总用量 11936
-rw-r--r-- 1 root root 12218968 11月 10 17:22 docker-compose-Linux-x86_64
[root@localhost bin]# 

2. Renomear e conceder permissões executáveis

[root@localhost bin]# mv docker-compose-Linux-x86_64 docker-compose && chmod +x docker-compose

3. Verifique a versão docker-compose

[root@localhost bin]# docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
[root@localhost bin]# 

Quarto, faça o certificado SSH primeiro

Se você usar um nome de domínio para fazer um certificado, basta substituir o IP abaixo pelo nome de domínio correspondente. Aqui testamos usando IP para fazer um certificado

1. Crie um diretório de certificado ssh e insira o diretório para tornar a chave privada do certificado CA

mkdir -p /usr/local/ssh/ && cd /usr/local/ssh/

openssl genrsa -out ca.key 4096

2. Gerar certificado CA

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.44.100" \
 -key ca.key \
 -out ca.crt

3. Gere a chave privada do servidor

openssl genrsa -out 192.168.44.100.key 4096

4. Gere uma solicitação de assinatura de certificado de servidor (CSR)

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.44.100" \
    -key 192.168.44.100.key \
    -out 192.168.44.100.csr

5. Crie um arquivo de extensão v3.ext

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth 
subjectAltName = @alt_names
[alt_names]
IP=192.168.44.100
EOF

6. Use o arquivo v3.ext para gerar um certificado para o host do porto

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in 192.168.44.100.csr \
    -out 192.168.44.100.crt

7. Forneça certificados para o docker usar. Primeiro converta 192.168.44.100.crt em 192.168.44.100.cert, caso contrário, o docker não reconhecerá o certificado

# 转换证书
openssl x509 -inform PEM -in 192.168.44.100.crt -out 192.168.44.100.cert

# 按以下标准格式创建docker证书目录。harbor官方建议,如更改了默认的443端口号,则证书目录如下:
mkdir -p /etc/docker/certs.d/192.168.44.100:9443/
# 如使用默认的443端口,则这样创建docker证书目录
mkdir -p /etc/docker/certs.d/192.168.44.100/

# 复制证书到docker证书目录
cp -a /usr/local/ssh/192.168.44.100.cert /etc/docker/certs.d/192.168.44.100:9443/
cp -a /usr/local/ssh/192.168.44.100.key /etc/docker/certs.d/192.168.44.100:9443/
cp -a /usr/local/ssh/ca.crt /etc/docker/certs.d/192.168.44.100:9443/
或
cp -a /usr/local/ssh/192.168.44.100.cert /etc/docker/certs.d/192.168.44.100/
cp -a /usr/local/ssh/192.168.44.100.key /etc/docker/certs.d/192.168.44.100/
cp -a /usr/local/ssh/ca.crt /etc/docker/certs.d/192.168.44.100/   

8. O diretório do certificado relacionado ao ssh que obtivemos até agora deve ser assim

# 生成的所有证书目录
[root@localhost ssh]# ll /usr/local/ssh/
总用量 32
-rw-r--r-- 1 root root 2078 12月  8 16:51 192.168.44.100.cert
-rw-r--r-- 1 root root 2078 12月  8 15:23 192.168.44.100.crt
-rw-r--r-- 1 root root 1716 12月  8 15:23 192.168.44.100.csr
-rw-r--r-- 1 root root 3243 12月  8 15:23 192.168.44.100.key
-rw-r--r-- 1 root root 2053 12月  8 15:22 ca.crt
-rw-r--r-- 1 root root 3247 12月  8 15:19 ca.key
-rw-r--r-- 1 root root   17 12月  8 15:23 ca.srl
-rw-r--r-- 1 root root  230 12月  8 15:23 v3.ext

# docker 配置https访问证书目录
[root@localhost ssh]# ll /etc/docker/certs.d/192.168.44.100\:9443
总用量 12
-rw-r--r-- 1 root root 2078 12月  8 16:51 192.168.44.100.cert
-rw-r--r-- 1 root root 3243 12月  8 15:23 192.168.44.100.key
-rw-r--r-- 1 root root 2053 12月  8 15:22 ca.crt

9. Reinicie o docker para fazer efeito

systemctl restart docker

Cinco, instale e configure o porto

1. Carregue o pacote de instalação do porto baixado da rede externa para o servidor de rede interno, eu coloquei em: / usr / local

[root@localhost local]# ll /usr/local/ | grep harbor-offline-installer-v2.0.4.tgz 
-rw-r--r--  1 root root 535415029 11月 23 16:12 harbor-offline-installer-v2.0.4.tgz
[root@localhost local]#

2. Descompacte o pacote de instalação do porto, configure o porto.yml e forneça o certificado para o porto usar

# 解压
[root@localhost local]# tar -zxvf harbor-offline-installer-v2.0.4.tgz 
harbor/harbor.v2.0.4.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl

# 查看解压生成目录
[root@localhost local]# ll | grep harbor
drwxr-xr-x  3 root root       180 12月  9 15:20 harbor
-rw-r--r--  1 root root 535415029 11月 23 16:12 harbor-offline-installer-v2.0.4.tgz

# 进入、查看目录文件
[root@localhost local]# cd harbor
[root@localhost harbor]# ll
总用量 525080
-rw-r--r-- 1 root root      3361 11月 13 16:17 common.sh
-rw-r--r-- 1 root root 537645661 11月 13 16:18 harbor.v2.0.4.tar.gz
-rw-r--r-- 1 root root      7828 11月 13 16:17 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2523 11月 13 16:17 install.sh
-rw-r--r-- 1 root root     11347 11月 13 16:17 LICENSE
-rwxr-xr-x 1 root root      1856 11月 13 16:17 prepare

# 复制一个配置文件并改名为harbor.yml
[root@localhost harbor]# cp -a harbor.yml.tmpl harbor.yml

# 修改配置文件,修改内容如下,密码默认,其他保持不变,harbor和docker不同,它识别.crt的证书,因此不用转换。
[root@localhost harbor]# vi harbor.yml
hostname: 192.168.44.100
http:
  port: 9080
https:
  port: 9443
  certificate: /usr/local/ssh/192.168.44.100.crt  
  private_key: /usr/local/ssh/192.168.44.100.key  

3. Execute ./install.sh para instalar o Harbor e aguarde a conclusão da instalação

# 执行安装程序
[root@localhost harbor]# ./install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 19.03.13

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.27.4

[Step 2]: loading Harbor images ...

.....

5. Porto de login do navegador, endereço: https://192.168.44.100:9443 ou https://192.168.44.100:443, faça login com a senha padrão definida no arquivo de configuração harbour.yml, senha padrão: Harbor12345

 A interface após o login é a seguinte: você pode armazenar sua própria imagem espelhada na biblioteca de projetos padrão, também pode criar um novo projeto e também pode modificar a cor do tema.

6. O Docker se conectou com sucesso ao armazém privado offline do porto.

# 使用docker login 192.168.44.100:9443 或 docker login 192.168.44.100:443登录

[root@localhost harbor]# docker login 192.168.44.100:9443
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost harbor]# 

7. Carregar e baixar imagens no armazém privado offline do porto

# 上传镜像
# 首先要有一个镜像。外网环境用docker下载一个mysql5.7镜像
docker pull mysql:5.7

# 下载完成后,将mysql:5.7镜像打包在当前目录
docker save mysql:5.7 -o mysql:5.7.tar

# 将此压缩包用U盘或其他方式转移到内网,并载入docker镜像
docker load < mysql:5.7.tar

# docker登录harbor
docker login 192.168.44.100:9443

# 重新标记要推送的镜像 docker tag SOURCE_IMAGE[:TAG] 192.168.44.100:9443/rancher/REPOSITORY[:TAG]
docker tag mysql:5.7 192.168.44.100:9443/rancher/mysql:v5.7

# 将标记的镜像推送至harbor仓库的rancher项目里 docker push 192.168.44.100:9443/rancher/REPOSITORY[:TAG]
docker push 192.168.44.100:9443/rancher/mysql:v5.7

# 在harbor的web页面确认是否推送成功




# 下载镜像
# 删除docker本地镜像,这个操作不会删除已上传至harbor离线仓库的镜像
docker rmi 192.168.44.100:9443/rancher/mysql:v5.7
docker rmi mysql:5.7

# 重新从harbor离线仓库下载镜像
docker pull 192.168.44.100:9443/rancher/mysql@sha256:ec6742af6625f76f98162b17fd62d22e1824d13fd80f214ab9184c7b6b50bad5
或者
docker pull 192.168.44.100:9443/rancher/mysql:v5.7(推荐)

# 查看是否下载成功
docker images

.Se você não conseguir fazer login no armazém do porto no processo subsequente, você pode tentar o seguinte:

# 依次执行,必要时可先重启docker,再执行以下操作

# 重加载配置文件
[root@localhost harbor]# ./prepare
# 停止并删除实例(此操作不会删除已上传的镜像和其他数据)
[root@localhost harbor]# docker-compose down -v
# 重启harbor
[root@localhost harbor]# docker-compose up -d

 

Acho que você gosta

Origin blog.csdn.net/ct_666/article/details/110916695
Recomendado
Clasificación