准备工作
已创建一台基础ECS实例,并满足以下配置。如何创建ECS实例?
- 操作系统:Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位、CentOS 7.x 64位、CentOS 8.x 64位、Ubuntu 22/20、Debain 11/12
- 网络类型:专有网络VPC
- IP地址:实例已分配公网IP地址或绑定弹性公网IP(EIP)。如何为ECS实例开通公网?
- 安全组:入方向放行80、22端口。具体操作,请参见如何添加安全组规则放行端口。
操作步骤
远程连接ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例。
安装Docker。
更新软件包列表。
sudo apt update
安装Docker所需依赖包。
sudo apt-get -y install ca-certificates curl
创建/etc/apt/keyrings
目录,并下载Docker的官方GPG密钥到该目录。
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
将Docker仓库添加到系统的软件源列表。
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.aliyun.com/docker-ce/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新软件包列表。
sudo apt update
安装Docker。
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
查看docker
版本信息。
docker -v
如下图回显信息所示,表示Docker已安装成功
启动Docker守护进程并设置开机自启动。
- 执行以下命令,启动Docker服务,并设置开机自启动
sudo systemctl start docker
sudo systemctl enable docker
执行以下命令,查看Docker是否启动。
sudo systemctl status docker
如下图回显所示,表示Docker已启动。
安装并使用docker-compose
docker-compose是Docker官方提供的用于定义和运行多个Docker容器的开源容器编排工具,可以使用YAML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令解析YAML文件配置,创建并启动配置文件中的所有Docker服务,具有运维成本低、部署效率高等优势。
关于docker-compose的更多信息,请参见Docker官网。
安装docker-compose
运行以下命令,安装setuptools。
sudo pip3 install -U pip setuptools
运行以下命令,安装docker-compose。
sudo pip3 install docker-compose
运行以下命令,验证docker-compose是否安装成功。
docker-compose --version
- 如果回显返回docker-compose版本信息,表示docker-compose已安装成功。
使用docker-compose部署应用
下文以部署WordPress为例,介绍如何使用docker-compose部署应用。
- 创建并编辑docker-compose.yaml文件。
- 运行以下命令,创建docker-compose.yaml文件。
sudo vim docker-compose.yaml
- (可选)配置镜像加速服务。由于运营商网络原因,会导致您拉取Docker Hub镜像变慢,甚至下载失败。您可以使用阿里云容器镜像服务ACR提供的官方镜像加速器,加速官方镜像的下载。具体操作,请参见官方镜像加速。
- 按下
i
键,进入编辑模式,新增以下内容。本示例以安装WordPress为例。
version: '3.1' # 版本信息
services:
wordpress: # 服务名称
image: wordpress # 镜像名称
restart: always # docker启动,当前容器必启动
ports:
- 80:80 # 映射端口
environment: # 编写环境
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
volumes: # 映射数据卷
- wordpress:/var/www/html
db: # 服务名称
image: mysql:5.7 # 镜像名称
restart: always # docker启动,当前容器必启动
ports:
- 3306:3306 # 映射端口
environment: # 环境变量
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123456
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes: # 卷挂载路径
- db:/var/lib/mysql
volumes:
wordpress:
db:
按下Esc
键,退出编辑模式,然后输入:wq
保存并退出。
执行以下命令,启动应用.
sudo env "PATH=$PATH" docker-compose up -d
在浏览器中输入http://云服务器ECS实例的公网IP
,即可进入WordPress配置页面,您可以根据界面提示配置相关参数后,访问WordPress。
安装Portainer
创建daemon.json
文件:
sudo nano /etc/docker/daemon.json
添加基本配置: 在文件中添加以下内容,使用国内镜像源以提高拉取速度:
{
"registry-mirrors": ["https://docker.1panel.live"]
}
重启Docker服务:
sudo systemctl restart docker
将用户添加到docker 组
sudo usermod -aG docker ecs-user
重新登录:添加用户到 docker
组后,需要重新登录才能使更改生效。你可以注销并重新登录,或者使用以下命令:
newgrp docker
部署Portainer服务器
docker volume create portainer_data
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
云服务器使用docker安装portainer容器可视化管理工具-阿里云开发者社区 (aliyun.com)
debian 使用docker安装homeassistant
sudo docker run -d \
--name home-assistant \
-v /etc/homeassistant/config:/config \
-v /etc/homeassistant/addons:/addons \
-v /etc/homeassistant/media:/media \
-e TZ="Asia/Shanghai" \
-p 8123:8123 \
homeassistant/home-assistant:stable
进入docker homeassistant容器中通过命令安装
wget -O - https://get.hacs.xyz | bash -