0.背景
安裝docker,關於yum源的配置可以看我這篇文章: CentOS更換yum源
# 安裝yum-utils
yum install -y yum-utils
# 配置國內源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker
yum install -y docker-ce docker-ce-cli containerd.io --nobest
# 查看docker版本
docker -v
# 上方輸出
# Docker version 20.10.12, build e91ed57
# 啟動docker
systemctl start docker
1.安裝
1.1 查找鏡像
# 查找鏡像倉庫
docker search portainer
這個顯眼的中文直接引起了我的注意
1.2 拉取鏡像
# 拉取鏡像
docker pull 6053537/portainer
1.3 查看鏡像及啟動
# 查看鏡像列表
docker images
# 上方輸出
REPOSITORY TAG IMAGE ID CREATED SIZE
6053537/portainer latest 7f796122a798 3 months ago 85.5MB
# 啟動 \是換行符的意思
docker run -d -p 9000:9000 \
-v /root/portainer:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
--name yang-portainer \
6053537/portainer
# docker啟動時,自動重啟portainer容器,在啟動參數里追加.
--restart=always
# 更新已有容器為自動重啟
docker update --restart=always 容器ID(或者容器名)
參數說明
#容器在后台運行
-d
# 宿主機9000端口映射容器中的9000端口
-p 9000:9000
# 把宿主機的Docker守護進程(docker daemon)默認監聽的Unix域套接字掛載到容器中,
-v /var/run/docker.sock:/var/run/docker.sock
# 把宿主機目錄/root/portainer掛載到容器/data 目錄,宿主機就是服務器,容器就是docker里面這個portainer
-v /root/portainer:/data
# 指定運行容器的名稱
–name yang-portainer
1.4 查看日志
# 查看所有容器
docker ps -a
# 上方輸出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc7fc22d8c81 6053537/portainer "/portainer" 19 minutes ago Up 13 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp yang-portainer
# 看cc7fc22d8c81這個容器的日志
docker logs --details cc7fc22d8c81
1.5 訪問
ip:9000訪問頁面,選local,即管理宿主機的docker。
第一次會讓你設置密碼,記得放防火牆。
2.管理遠端
2.1 遠端配置
前面裝好了portainer的服務器叫A,現在管理遠端服務器B,B也要安裝docker。
# 編輯docker服務文件
vim /usr/lib/systemd/system/docker.service
# ExecStart項后面追加,端口自定義,我用的9500。
# -H tcp://0.0.0.0:9500
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:9500
這里你可以改成自己的ip,記得放防火牆,我這里9500端口加了A服務器的ip白名單。
# 刷新剛才的service配置
systemctl daemon-reload
# 啟動或重啟docker
systemctl start docker
systemctl restart docker
# 查看docker服務的狀態
systemctl status docker
圖里最后一行可以看到在監聽9500端口了
2.2 連接遠端
回到我們服務器A的后管頁面。
端點、添加端點
回到首頁就可以看到信息,下線了的話綠色的up就會變成紅色的dwn。