【ECS生长万物之开源】部署并使用Docker

本文涉及的产品
资源编排,不限时长
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,1个月黄金款+200核时
简介: Docker是一款开源的应用容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中,快速发布到Linux机器上并实现虚拟化,实现更高效地构建、部署和管理应用程序。本文介绍如何在云服务ECS实例上,部署并使用Docker。

本文介绍如何在云服务ECS实例上,部署并使用Docker。

背景信息

Docker是一款开源的应用容器引擎,具有可移植性、可扩展性、高安全性和可管理性等优势。开发者可将应用程序和依赖项打包到一个可移植的容器中,快速发布到Linux机器上并实现虚拟化,实现更高效地构建、部署和管理应用程序。同时,阿里云提供了Docker镜像源,方便您快速部署Docker。

前提条件

已创建一台基础ECS实例,并满足以下配置。如果您还未创建,请参见自定义购买实例

  • 操作系统:CentOS 7.x 64位、CentOS 8.x 64位、Alibaba Cloud Linux 3 64位、Alibaba Cloud Linux 2 64位
  • 网络类型:专有网络VPC
  • IP地址:公网IP
  • 安全组:入方向开放80、22、8080端口。具体操作,请参见添加安全组规则

部署Docker

1.远程连接ECS实例。关于连接方式的介绍,请参见连接方式概述

2.安装Docker。

以镜像版本Alibaba Cloud Linux 3为例,步骤如下:

a.运行以下命令,添加docker-ce的dnf源。

sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

b.运行以下命令,安装Alibaba Cloud Linux 3专用的dnf源兼容插件。

sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus

c.运行以下命令,安装Docker。

sudo dnf -y install docker-ce --nobest

如果执行命令,出现类似下图的报错信息,您需要注释/etc/yum.repos.d下的CentOS源,注释后重新安装docker-ce。

3.执行以下命令,检查Docker是否安装成功。

sudo docker -v

如下图回显信息所示,表示Docker已安装成功。

4.执行以下命令,启动Docker服务,并设置开机自启动。

sudo systemctl start docker
sudo systemctl enable docker

5.执行以下命令,查看Docker是否启动。

sudo systemctl status docker

如下图回显所示,表示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镜像。

1.执行以下命令,拉取镜像。本示例以拉取阿里云仓库的Apache镜像为例。

sudo docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

2.修改镜像名称标签,便于记忆。

sudo docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1

3.执行以下命令,新建并编辑Dockerfile文件。

a执行以下命令,新建并编辑Dockerfile文件。

vim Dockerfile

b.按i进入编辑模式,并添加以下内容,改造原镜像。

#声明基础镜像来源。
FROM aliweb:v1
#声明镜像拥有者。
MAINTAINER DTSTACK
#RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行。
RUN mkdir /dtstact
#开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。
ENTRYPOINT ping www.aliyun.com

c.按Esc键,输入:wq并按Enter键,保存并退出Dockerfile文件。

4.执行以下命令,基于基础镜像nginx构建新镜像。
命令格式为docker build -t <镜像名称>:<镜像版本> .命令末尾的.表示Dockerfile文件的路径,不能忽略。以构建新镜像aliweb:v2为例,则命令为:

sudo docker build -t aliweb:v2 .

5.执行以下命令,查看新镜像是否构建成功。

sudo docker images

如下图回显所示,表示构建成功。

安装并使用docker-compose

docker-compose是Docker官方提供的用于定义和运行多个Docker容器的开源容器编排工具,可以使用YAML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令解析YAML文件配置,创建并启动配置文件中的所有Docker服务,具有运维成本低、部署效率高等优势。

关于docker-compose的更多信息,请参见Docker官网

重要 :仅Python 3及以上版本支持docker-compose,并请确保已安装pip。

安装docker-compose

1.运行以下命令,安装setuptools。

pip3 install -U pip setuptools

2.运行以下命令,安装docker-compose。

pip3 install docker-compose

3.运行以下命令,验证docker-compose是否安装成功。

docker-compose --version

如果回显返回docker-compose版本信息,表示docker-compose已安装成功。

使用docker-compose部署应用

下文以部署WordPress为例,介绍如何使用docker-compose部署应用。

1.创建并编辑docker-compose.yaml文件。

a.运行以下命令,创建docker-compose.yaml文件。

vim docker-compose.yaml

b.按下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:

c.按下Esc键,退出编辑模式,然后输入:wq保存并退出。

2.执行以下命令,启动应用.

sudo env "PATH=$PATH" docker-compose up -d

3.在浏览器中输入https://云服务器ECS实例的公网IP,即可进入WordPress配置页面,您可以根据界面提示配置相关参数后,访问WordPress。


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
34 2
|
5天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
54 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
11天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
217 8
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
16天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
55 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
7天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
7天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
17 1
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
29 3
|
22天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
185 2
|
7天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
27 0

相关产品

  • 云服务器 ECS