前情提要

docker部署流程:构建镜像→构建容器→端口映射

Portainer:一个可视化的docker工具


安装docker

以ubuntu为例,官方链接Install Docker Engine on Ubuntu | Docker Docs

添加apt的(镜像)源

这里可以添加docker官方的源

1
2
3
4
5
6
7
8
9
10
11
12
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

或者按照阿里云镜像

1
2
3
4
5
6
7
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

注意如果你在使用阿里云的云服务(比如说ECS)你应该使用http://mirrors.cloud.aliyuncs.com/这个链接来进行阿里云内网访问

添加源后可以用apt update验证,应该出现如

1
2
3
Hit:* https://download.docker.com/linux/ubuntu jammy InRelease
Hit:* http://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease
Hit:* http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu jammy InRelease

等等信息

使用apt安装docker服务

运行

1
install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动

1
systemctl start docker

验证安装

1
docker version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Client: Docker Engine - Community
Version: 25.0.3
API version: 1.44
Go version: go1.21.6
Git commit: 4debf41
Built: Tue Feb 6 21:13:09 2024
OS/Arch: linux/amd64
Context: default

Server: Docker Engine - Community
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: f417435
Built: Tue Feb 6 21:13:09 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.28
GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0

安装portainer

拉取镜像

1
docker pull portainer/portainer-ce

构建容器

1
2
3
4
5
6
7
# 启动镜像
docker run -d \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /dockerData/portainer:/data \
--restart=always \
--name portainer portainer/portainer-ce:latest

构建命令解释

  • docker run: 这是启动 Docker 容器的命令。
  • -d: 这个参数告诉 Docker 在后台运行容器,即以守护进程的形式运行。
  • -p 9000:9000: 这个参数指定容器的端口映射规则。将容器的 9000 端口映射到宿主机的 9000 端口,这样外部就可以通过访问宿主机的 9000 端口来访问容器内的应用程序。
  • -v /var/run/docker.sock:/var/run/docker.sock: 这个参数用于将宿主机的 Docker Socket 文件挂载到容器内部,以便容器可以与宿主机上的 Docker 引擎进行通信,从而实现对 Docker 的管理和操作。
  • -v /dockerData/portainer:/data: 这个参数用于将宿主机的 /dockerData/portainer 目录挂载到容器内部的 /data 目录,这样容器内部的数据就可以持久化保存在宿主机上,即使容器被删除也不会丢失数据。
  • --restart=always: 这个参数指定容器的重启策略为始终重启,即无论容器退出的原因是什么,Docker 引擎都会自动重启该容器。
  • --name portainer: 这个参数指定容器的名称为 portainer
  • portainer/portainer-ce:latest: 这个参数指定要运行的 Docker 镜像的名称和标签。在这里使用了 portainer/portainer-ce 镜像,并选择了 latest 标签,即最新版本的 Portainer Community Edition。

访问

访问ip:9000即可找到portainer服务,后跟随引导完成设置