阿里云服务器安装部署Docker使用教程
本文阿里云百科分享如何在云服务ECS实例上,部署并使用Docker。Docker是一款开源的应用容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中,快速发布到Linux机器上并实现虚拟化,实现更高效地构建、部署和管理应用程序。同时,阿里云提供了Docker镜像源,方便您快速部署Docker。
目录
前提条件
部署Docker
Docker基本用法
使用Docker制作镜像
安装并使用docker-compose
安装docker-compose
使用docker-compose部署应用
前提条件
已创建一台基础ECS实例,并满足以下配置。
- 操作系统:CentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位
- ECS云服务器:aliyunbaike.com/go/ecs
- 网络类型:专有网络VPC
- IP地址:公网IP
- 安全组:入方向开放80、22、8080端口。具体操作,请参见添加安全组规则。
部署Docker
- 远程连接ECS实例。
关于连接方式的介绍,请参见连接方式概述。
-
安装Docker,CentOS 8.x
-
切换CentOS 8源地址。
CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。
-
运行以下命令,安装DNF。
sudo yum -y install dnf -
运行以下命令,安装Docker存储驱动的依赖包。
sudo dnf install -y device-mapper-persistent-data lvm2 -
运行以下命令,添加稳定的Docker软件源。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
运行以下命令,检查Docker软件源是否已添加。
sudo dnf list docker-ce出现如下图所示回显,表示Docker软件源已添加。可以使用阿里云测速工具 aliyunping.com 测试一下本地到阿里云服务器各个地域节点的Ping值网络延迟。

-
运行以下命令安装Docker。
sudo dnf install -y docker-ce --nobest -
执行以下命令,检查Docker是否安装成功。
sudo docker -v如下图回显信息所示,表示Docker已安装成功。

-
执行以下命令,启动Docker服务,并设置开机自启动。
sudo systemctl start docker sudo systemctl enable docker -
执行以下命令,查看Docker是否启动。
sudo systemctl status docker如下图回显所示,表示Docker已启动。

Docker基本用法
下文只列出Docker基本用法
-
管理Docker守护进程
sudo systemctl start docker #运行Docker守护进程 sudo systemctl stop docker #停止Docker守护进程 sudo systemctl restart docker #重启Docker守护进程 sudo systemctl enable docker #设置Docker开机自启动 sudo systemctl status docker #查看Docker的运行状态 -
管理镜像
本文以阿里云仓库的Apache镜像为例,介绍如何使用Docker管理镜像。
-
拉取镜像。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 -
修改标签。如果镜像名称较长,您可以修改镜像标签以便记忆区分。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1 -
查看已有镜像。
sudo docker images -
强制删除镜像。
sudo docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
-
-
管理容器
下文的<镜像ID>可通过
docker images命令查询。-
启动一个新容器。
sudo docker run -it <镜像ID> /bin/bash -
启动一个新的容器,让容器在后台运行,并且指定容器的名称。
sudo docker run -d --name <容器名> <镜像ID> -
查看容器ID。
sudo docker ps -
将容器做成镜像。
sudo docker commit <容器ID或容器名> <仓库名>:<标签>
-
使用Docker制作镜像
本步骤指导如何通过Dockerfile定制制作一个简单的Nginx镜像。
-
执行以下命令,拉取镜像。本示例以拉取阿里云仓库的Apache镜像为例。
sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 -
修改镜像名称标签,便于记忆。
sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1 -
执行以下命令,新建并编辑Dockerfile文件。
-
执行以下命令,新建并编辑Dockerfile文件。
vim Dockerfile -
按
i进入编辑模式,并添加以下内容,改造原镜像。#声明基础镜像来源。 FROM aliweb:v1 #声明镜像拥有者。 MAINTAINER DTSTACK #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行。 RUN mkdir /dtstact #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。 ENTRYPOINT ping www.aliyun.com -
按
Esc键,输入:wq并按Enter键,保存并退出Dockerfile文件。
-
-
执行以下命令,基于基础镜像nginx构建新镜像。
命令格式为
docker build -t <镜像名称>:<镜像版本> .,命令末尾的.表示Dockerfile文件的路径,不能忽略。以构建新镜像aliweb:v2为例,则命令为:sudo docker build -t aliweb:v2 . -
执行以下命令,查看新镜像是否构建成功。
sudo docker images如下图回显所示,表示构建成功。

安装并使用docker-compose
docker-compose是Docker官方提供的用于定义和运行多个Docker容器的开源容器编排工具,可以使用YAML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令解析YAML文件配置,创建并启动配置文件中的所有Docker服务,具有运维成本低、部署效率高等优势。
重要
仅Python 3及以上版本支持docker-compose,并请确保已安装pip。
安装docker-compose
-
运行以下命令,安装setuptools。
pip3 install -U pip setuptools -
运行以下命令,安装docker-compose。
pip3 install docker-compose -
运行以下命令,验证docker-compose是否安装成功。
docker-compose --version如果回显返回docker-compose版本信息,表示docker-compose已安装成功。
使用docker-compose部署应用
下文以部署WordPress为例,介绍如何使用docker-compose部署应用。
-
创建并编辑docker-compose.yaml文件。
-
运行以下命令,创建docker-compose.yaml文件。
vim docker-compose.yaml -
按下
i键,进入编辑模式,新增以下内容。本示例以安装WordPress为例。
version: '3.1' # 版本信息services:wordpress: # 服务名称 image: wordpress # 镜像名称restart: always # docker启动,当前容器必启动ports:- 80:80 # 映射端口environment: # 编写环境WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wordpressvolumes: # 映射数据卷- wordpress:/var/www/htmldb: # 服务名称 image: mysql:5.7 # 镜像名称restart: always # docker启动,当前容器必启动ports:- 3306:3306 # 映射端口environment: # 环境变量MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: 123456MYSQL_RANDOM_ROOT_PASSWORD: '1'volumes: # 卷挂载路径- db:/var/lib/mysqlvolumes:wordpress:db: -
按下
Esc键,退出编辑模式,然后输入:wq保存并退出。
-
-
执行以下命令,启动应用.
sudo env "PATH=$PATH" docker-compose up -d -
在浏览器中输入
https://云服务器ECS实例的公网IP,即可进入WordPress配置页面,您可以根据界面提示配置相关参数后,访问WordPress。
本文转自阿里云官方文档。
相关文章:
阿里云服务器安装部署Docker使用教程
本文阿里云百科分享如何在云服务ECS实例上,部署并使用Docker。Docker是一款开源的应用容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中,快速发布到Linux机器上并实现虚拟化…...
WebRTC | ICE详解
目录 一、Candidate种类与优先级 二、ICE策略 1. iceServers 2. iceTransportPolicy 三、P2P连接 1.Nat类型 (1)完全锥型NAT (2)IP限制锥型NAT (3)端口限制锥型NAT (4)对称…...
网络设备(防火墙、路由器、交换机)日志分析监控
外围网络设备(如防火墙、路由器、交换机等)是关键组件,因为它们控制进出公司网络的流量。因此,监视这些设备的活动有助于 IT 管理员解决操作问题,并保护网络免受攻击者的攻击。通过收集和分析这些设备的日志来监控这些…...
2023年国赛数学建模思路 - 复盘:人力资源安排的最优化模型
文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 描述 …...
Compute shader SV 理解图
本图转子:【Computeshader】个人总结_蒋伟博的博客-CSDN博客...
生信豆芽菜-多种算法计算免疫浸润
网址:http://www.sxdyc.com/immuneInfiltration 一、使用方法 1、数据准备 一个全编码蛋白的表达谱基因,其中行为基因,列为样本 第一列为基因为行名,不能重复 2、选择计算的方法(这里提供了5种免疫计算的方法&#x…...
逆向破解学习-单机斗地主
试玩 破解思路 9000 是成功的代码 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ Override p…...
matplotlib绘制位置-时序甘特图
文章目录 1 前言2 知识点2.1 matplotlib.pyplot.barh2.2 matplotlib.legend的handles参数 3 代码实现4 绘制效果5 总结参考 1 前言 这篇文章的目的是,总结记录一次使用matplotlib绘制时序甘特图的经历。之所以要绘制这个时序甘特图,是因为22年数模研赛C…...
数据库概述、部署MySQL服务、必备命令、密码管理、安装图形软件、SELECT语法 、筛选条件
Top NSD DBA DAY01 案例1:构建MySQL服务器案例2:密码管理案例3:安装图形软件案例4:筛选条件 1 案例1:构建MySQL服务器 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务练习必备命令的使用 …...
概率论与数理统计:第四章:随机变量的数字特征
文章目录 Ch4. 随机变量的数字特征1. 数学期望E(X)(1)数学期望的概念1.离散型①一维离散型随机变量X的数学期望: E X EX EX②一维离散型随机变量的函数的期望: E [ g ( X ) ] E[g(X)] E[g(X)]③二维离散型随机变量的函数的期望: E [ g ( X , …...
解决饿了么ui的对话框缩放和移动
import Vue from "vue";// v-dialogDrag: 弹窗拖拽水平方向伸缩 /** 使用方法* 将以下代码复制到一个js文件中,然后在入口文件main.js中import引入即可;* 给elementUI的dialog上加上 v-dialogDrag 指令就可以实现弹窗的全屏和拉伸了。* 给…...
Linux 中复制文件并保持修改时间等属性
一、遇到的问题 Linux使用cp命令复制文件备份时,发现文件的修改时间变成当前时间了,想要保留备份文件原有的修改时间及其它文件属性。 二、实现 1、cp命令 在 Linux 中,你可以使用 cp 命令来复制文件,并通过 -p 或 --preserve…...
Hugging News #0814: Llama 2 学习资源大汇总
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息࿰…...
可视化绘图技巧100篇进阶篇(五)-阶梯线图(Step Chart)
目录 前言 图表类型特征 适用场景 图例 绘图工具及代码实现 ECharts SMARTBI...
GPT带我学-设计模式-命令模式
1 你知道设计模式的命令模式吗 是的,我知道设计模式中的命令模式。命令模式是一种行为型设计模式,它将请求封装成一个对象,从而允许使用不同的请求、队列或日志来参数化其他对象。命令模式还支持撤销操作,并且可以提供事务的实现…...
互联网发展历程:跨越远方,路由器的启示
互联网的蓬勃发展,一直在追求更广阔的连接,更遥远的距离。然而,在早期的网络中,人们面临着连接距离有限的问题。一项重要的技术应运而生,那就是“路由器”。 连接受限的问题:距离有限 早期的网络受限于直接…...
postman入门基础 —— 接口测试流程
一、编写接口测试计划 接口测试计划和功能测试计划目标一致,都是为了确认需求、确定测试环境、确定测试方法,为设计测试用例做准备,初步制定接口测试进度方案。一般来说,接口测试计划包括概述、测试资源、测试功能、测试重点、测试…...
springcloud+nacos实现灰度发布
灰度发布 gateway网关实现灰度路由 灰度发布实体 package com.scm.boss.common.bean;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable;/*** 灰度发布实体*/ Data Accessors(chain true) public class GrayBean implements Serializ…...
【C++笔记】C++之类与对象(上)
【C笔记】C之类与对象(上) 1、类是结构体的升级2、类中可以定义的东西3、类访问限定符4、类的声明5、类的实例化(定义)6、类的大小的计算7、this指针 1、类是结构体的升级 C的一个显著特征就是兼容C语言,所以C把结构体“升级”成了“类”&am…...
ebay灯串UL报告 UL588检测标准
季节性和装饰性照明用品即灯串以及配件都是便携式插头连接的临时性商品,最大额定输入电压为 120 伏。 由 ILAC ISO 17025 认证的实验室出具的检测报告,确认每件商品均已经过检测,符合下列要求: 季节性和装饰性照明用品(灯串&…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
goreplay
1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...
Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
Cursor AI 账号纯净度维护与高效注册指南
Cursor AI 账号纯净度维护与高效注册指南:解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后,许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...
Java高级 |【实验八】springboot 使用Websocket
隶属文章:Java高级 | (二十二)Java常用类库-CSDN博客 系列文章:Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...
