离线安装Docker、docker-compose、harbor、rancher、jenkins

发布时间 2023-04-11 19:08:57作者: 莫莫君不恋爱

全文重点参考https://blog.csdn.net/yuyangchenhao/article/details/117573732

部署环境:

1. centos 7

2. ubuntu 22.04

3. 树莓派(这部分另写)

离线环境下部署。

0. 前期准备

  本文使用了上面博客提供的全部文件,可自行下载:

https://pan.baidu.com/s/1Vp8R0Ac8KLHw2KlOiqtK8A 
提取码:n46d

 

其中版本为:

docker :19.03.4 ;

docker-compose : 1.25.0 ;

harbor :V1.9.3;  

rancher : 2.4.2 ; 

注意,habor安装时有docker最低版本要求,这个版本下 docker 版本至少为17.06.0以上, 同时安装harbor之前需要先安装好docker和docker-compose;

 

1. 安装 docker 

  我指定的目录:/home/Downloads,找个地方放就行。

  首先要将下载好的 docker-19.03.4.tgz 文件上传到你指定的目录中,在该目录下进行如下操作:

1.1 准备 docker.service 配置文件

#创建docker.service文件
touch docker.service
#vim打开,将下面的内容写入
vim docker.service

  或者在别的地方准备好docker.service文件,在上传到指定目录中。

  docker.service内容如下:(ps:在我参考的博客中的docker.service有问题,使用如下这个没有问题)

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

 1.2 安装

   为了方便,直接写成脚本形式,当然也可以依次输入命令(忽略echo)

install.sh

#!/bin/sh
echo '解压tar包...'
tar -xvf docker-19.03.4.tgz    # 写实际docker安装包名
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v

   最终出现如下情况,表示安装成功:

可能出现的问题:

1. 添加自启动时失败

解决方法:流程重新安装,注意docker.service里是否与本文一致

2. 为了避免每次都有用 sudo命令,可以将用户名加入docker用户组

# 1.创建docker用户组
groupadd docker
# 2.将用户加入docker用户组
usermod -aG docker ${USER}    #写用户名就行
# 3.更新用户组
newgrp docker
# 4.重启docker服务
systemctl restart docker

1.3 卸载

  按照如下操作可以卸载docker

uninstall.sh

#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'

 

2. 安装docker-compose 

   将下载好的 docker-compose-Linux-x86_64 上传到指定目录。

2.1 安装

  依次执行以下命令:

# 1.将安装文件复制到/usr/local/bin/目录下
cp docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

# 2.将该文件赋为可执行文件
chmod +x /usr/local/bin/docker-compose

# 3.创建软链
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 4.测试是否安装成功
docker-compose -version

  出现docker-compose版本号,则安装成功:

2.2 卸载

  卸载只需执行:

rm -rf /usr/local/bin/docker-compose

 

3. 安装 Harbor 私有仓库

  将下载好的 harbor-offline-installer-v1.9.3.tgz 上传到指定目录。

3.1 安装

1. 解压

tar zxvf harbor-offline-installer-v1.9.3.tgz

2. 修改 harbor.yml 文件

2.1 进入解压harbor-offline-installer-v1.9.3.tgz文件后出现的harbor文件夹

cd /home/tomcat/harbor

2.2 修改harbor.yml文件

vim harbor.yml

  将hostname改成服务器的IP地址,port改成8800(防止与rancher端口冲突即可),可选择性修改harbor_admin_password属性:admin账户密码;测试环境使用http协议,不使用CA证书。

  需要注意的是 hostname,这里是自定义的,自己按照格式起一个名。

// 设置主机名
[root@localhost harbor]# hostnamectl set-hostname manager.com
[root@localhost harbor]# bash
[root@node1 harbor]# hostname
manager.com

// 添加主机映射
[root@localhost harbor]# vim /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.91.137 manager.com

// 测试能否ping通 manager.com 主机
[root@localhost harbor]# ping manager.com
PING node1.example.com (192.168.91.137) 56(84) bytes of data.
64 bytes from node1.example.com (192.168.91.137): icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from node1.example.com (192.168.91.137): icmp_seq=2 ttl=64 time=0.033 ms

 参考博客:https://blog.csdn.net/Gf19991225/article/details/121982824

 3. 执行 harbor 安装脚本 

./install.sh

 

4. 打开浏览器进入 harbor 图形化界面

4.1  登录地址 : http://192.168.222.135 :8800

  账号:admit

  密码:默认是Harbor12345,刚刚如果改了就用自己改的

4.2  添加用户

  左菜单栏:系统管理 -> 用户管理 -> 创建用户

4.3 设置管理员

4.4 修改 daemon.json 文件

vim /etc/docker/daemon.json

  daemon.json文件中添加如下json(xxx.xxx.xxx.xxx为你的ip地址)

{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
    "insecure-registries":["https://xxx.xxx.xxx.xxx:8800"]
}

   保存并重启docker

systemctl daemon-reload
systemctl restart docker
docker-compose up -d

  进入harbor目录,执行命令刷新harbor配置

cd /home/Downloads/harbor
./prepare
./install.sh

  使用命令登录docker 

docker login xxx.xxx.xxx.xxx:8800

 

  登出命令

docker logout xxx.xxx.xxx.xxx:8800