CentOS7 Docker Harbor 安装和配置
环境说明:
操作系统 CentOS 7.x
- 相关资源包
描述 | 下载 |
---|---|
适用于Linux的Docker离线安装包 | 【📁】 docker-20.10.9.tgz |
适用于Linux的docker-compose离线安装包 | 【📁】 docker-compose-linux-x86_64 |
适用于Linux的Harbor | 【📁】 harbor-offline-installer-v1.10.11.tgz |
方法 / 步骤
一:Docker 安装和配置
1.1 解压并配置
# 解压
tar -zxvf docker-20.10.9.tgz
将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
1.2 创建并配置docker.service文件
进入/etc/systemd/system/目录,并创建docker.service文件
cd /etc/systemd/system/ touch docker.service
docker.service文件添加以下配置
(注意: --insecure-registry=192.168.0.2 此处改为你自己服务器ip)
[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 --selinux-enabled=false --insecure-registry=127.0.0.1
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.3 执行Docker
赋给docker.service文件添加执行权限
chmod 777 /etc/systemd/system/docker.service
重新加载配置文件(每次有修改docker.service文件时都要重新加载下)
systemctl daemon-reload
启动及自启动设置
systemctl start docker
#开启自动启动:
systemctl enable docker.service
查询启动状态:
systemctl status docker
#docker 命令正常启动
docker
docker images
docker --version
1.4 替换镜像
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://zxnkv11f.mirror.aliyuncs.com"]
}
EOF
或者
中科大镜像加速:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
网易163镜像加速:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
- 刷新配置 重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
二:Docker-compose 安装和配置
- 把 Docker-compose组件包移动到/usr/bin目录下
重命名 docker-compose-linux-x86_64 为 docker-compose
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose -v
- 容器编排工具Docker-compose加入和docker一样进入systemd 的管理并且开启自动启动
vi /etc/systemd/system/docker-compose.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker/app/
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
# 复制脚本
chmod 777 /etc/systemd/system/docker-compose.service
# 重新加载
systemctl daemon-reload
# 查看版本
docker-compose -v
三:Harbor 安装和配置
Harbor 的安装需要Docker 和 Docker-compose的提前安装
3.1 解压并配置Harbor
- 把下载好的离线安装包解压进入harbor目录
- 修改配置文件 harbor.yml
# 数据存放目录 (填写自己的目录)
data_volume: /volume1/docker/harbor7000/data
# 日志存放目录(填写自己的目录)
log:
location: /volume1/docker/harbor7000/logs
- 修改Hostname,http.port,注释掉https,更改harbor_admin_password
3.1 安装Harbor并启动
# 环境预编译
./prepare
./install.sh
安装并启动成功 默认账号密码 admin/ Harbor12345
3.2 设置开机启动
# 注意这里是/lib 目录下的启动目录 比/etc/systemd/system目录下优先级相对较低
vi /lib/systemd/system/harbor.service
# 添加以下内容
[Unit]
Description=Harbor
After=network.target
[Service]
ExecStart= /usr/local/harbor/docker-compose start
[Install]
WantedBy=multi-user.target
#保存
chmod 777 /lib/systemd/system/harbor.service
四:开启远程访问
默认的dokcer是不支持远程访问的,需要加点配置,开启Docker的远程访问
4.1 开启Docker (默认端口2375) 远程访问
# 首先查看docker配置文件所在位置
systemctl status docker
# 会输出如下内容:
● docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-12-17 14:22:23 CST; 18min ago
Docs: http://docs.docker.com
Main PID: 25113 (dockerd)
确定docker配置文件位置在:/etc/systemd/system/docker.service
然后修改该docker.service配置
找到包含ExecStart的这行,添加如下内容:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 笔者修改后的默认配置为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
4.2 添加harbor镜像配置
- 编辑docker的配置文件 /etc/docker/daemon.json 如果没有该文件就创建 daemon.json
注意:这里要写harbor本机在局域网的位置,不要写成127.0.0.1
# 添加harbor镜像地址
{
"insecure-registries": [
"http://192.168.11.24:6060"
]
}
4.3 其他常用命令
# 查看docker 配置信息
docker system info
# 后台配置重新加载
systemctl daemon-reload
# 重启docker服务
systemctl restart docker.service
# 此处可能会出现docker无法启动情况,可能是由于docker.service配置文件修改错误,重新修改一次然后重新执行上述命令即可
# 然后让harbor也重启(停止harbor)
docker-compose down
#启动后台所有服务(启动harbor)
docker-compose up -d
其他常用命令
- 重启harbor
harbor 通过docker-compose.yml (/usr/local/harbor/)配置文件的形式管理
#停止harbor,停止容器
docker-compose stop
# 启动容器
docker-compose up -d
# 重启docker引擎,harbor退出问题
# 停止harbor
docker-compose down
#加载配置文件
./prepare
#启动后台所有服务
docker-compose up -d
参考资料 & 致谢
[1] centos7.4 docker20最新版本离线安装
[2] 离线安装Harbor