部署并使用Docker(Alibaba Cloud Linux 3)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 本场景带您体验如何在Alibaba Cloud Linux 3.2104 LTS 64位操作系统的云服务器上部署并使用Docker。

部署并使用Docker(Alibaba Cloud Linux 3)

1. 创建实验资源

开始实验之前,您需要先创建ECS实例资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要1~3分钟。


2. 部署Docker

本步骤指导您如何在ECS实例上安装dnf源中默认的Docker(podman-docker)和安装社区版Docker(docker-ce)两种安装Dokcer的方式,请您选择任意一种安装方式在实验环境中执行即可。

说明:本实验建议您使用安装社区版Docker(docker-ce)方式安装Docker。

  1. 执行如下命令,安装dnf。dnf是新一代的rpm软件包管理器。
yum -y install dnf
  1. 安装Docker。

您可以通过以下任一方式安装Docker,本实验建议您使用安装社区版Docker(docker-ce)方式安装Docker。

  • 安装dnf源中默认的Docker(podman-docker)。

a.执行如下命令,安装podman-docker。

dnf -y install docker

b.执行如下命令,查看Docker是否安装成功。

docker images

返回结果如下,表示Docker安装成功。

注意:该方式安装的podman-docker没有守护进程(systemd),因此您在后续的操作中无需关注podman-docker的运行状态(无需进行systemctl命令的相关操作),直接使用Docker即可。

  • 安装社区版Docker(docker-ce)。

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

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

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

说明:如果您不使用Alibaba Cloud Linux 3专用的dnf源兼容插件,将无法正常安装docker-ce。更多信息,请参见Alibaba Cloud Linux 3系统中使用docker-ce、epel等第三方DNF(YUM)源安装软件失败

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

c.执行如下命令,安装docker-ce。

dnf -y install docker-ce --nobest

d.执行如下命令,查看docker-ce是否成功安装。

dnf list docker-ce

返回结果如下,表示docker-ce成功安装。

e.执行如下命令,启动Docker服务。

systemctl start docker

f.执行如下命令,查看Docker服务的运行状态。

systemctl status docker

返回结果如下,表示Docker服务处于运行中的状态。按q键退出查看Docker服务的运行状态。

g.执行如下命令,查看Docker的版本。

docker -v

返回结果如下,您可查看到Docker的版本。


3. 使用Docker

本步骤指导您学会Docker的基本用法。

  1. 管理Docker守护进程。

说明:安装dnf源中默认的Docker(podman-docker)是没有守护进程(systemd),因此不支持systemctl命令的相关操作。

1.1 执行如下命令,运行Docker守护进程。

systemctl start docker

1.2 执行如下命令,停止Docker守护进程。

systemctl stop docker

1.3 执行如下命令,重启Docker守护进程。

systemctl restart docker

1.4 执行如下命令,设置Docker开机自启动。

systemctl enable docker

1.5 执行如下命令,查看Docker的运行状态。q键退出查看Docker服务的运行状态。

systemctl status docker
  1. 管理镜像。

2.1 执行如下命令,拉取镜像。本实验使用的是来自阿里云仓库的Apache镜像。

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

2.2 执行如下命令,修改标签。由于阿里云仓库镜像的镜像名称较长,您可以修改镜像标签以便记忆区分。

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

2.3 执行如下命令,查看已有镜像。

docker images

返回结果如下,您可查看到两个镜像,一个是拉取的阿里云仓库的Apache镜像,另外一个是修改镜像标签后的镜像。

2.4 执行如下命令,强制删除镜像。本实验中删除的镜像为拉取的阿里云仓库的Apache镜像。

docker rmi -f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
  1. 管理容器。

3.1 执行如下命令,执行如下命令,查看已有镜像。

docker images

返回结果如下,您可查看到修改镜像标签后的镜像的IMAGE ID。

3.2 执行如下命令,进入容器,其中您需要将命令中的IMAGE ID改为上一步中查询到的IMAGE ID。

docker run -it IMAGE ID /bin/bash

3.3 输入exit,退出当前容器。

3.4 执行如下命令,后台运行容器,其中您需要将命令中的IMAGE ID改为上一步中查询到的IMAGE ID。run命令加上–d参数可以在后台运行容器,--name指定容器命名为apache。

docker run -d --name apache IMAGE ID

3.5 执行如下命令,进入后台运行的容器。

docker exec -it apache /bin/bash

3.6 输入exit,退出当前容器。

3.7 执行如下命令,查看容器ID。

docker ps

返回结果如下,您可查看到刚刚后台运行容器的容器ID(CONTAINER ID)。

3.8 将容器做成镜像的命令为docker commit containerID/containerName repository:tag,该命令的参数说明:docker commit <容器ID或容器名> [<仓库名>[:<标签>]]

在本实验中,执行如下命令,将容器做成镜像,其中您需要将命令中的CONTAINER ID改为上一步中查询到的CONTAINER ID。

docker commit CONTAINER ID apachephp:v1

3.9 执行如下命令,运行刚刚制作的镜像容器并将宿主机的8080端口映射到容器里去。

docker run -d -p 8080:80 apachephp:v1

3.10 在您的本机浏览器中,打开新页签并访问http://<ECS弹性IP>:8080

说明:

  • 您需要将<ECS弹性IP>替换为云产品列表中的ECS弹性IP。
  • ECS实例的安全组入方向规则需要放行8080端口。具体操作,请参见添加安全组规则。本实验已为您开放ECS实例的安全组入方向规则的8080端口,您无需操作。

返回如下页面,说明容器运行成功。


4. 制作Docker镜像

本步骤指导您如何制作Docker镜像。

  1. 准备Dockerfile内容。

1.1 执行如下命令,新建并编辑Dockerfile文件。

vim Dockerfile

1.2 按i进入编辑模式,添加以下内容。

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

1.3 按下键盘Esc键,输入:wq并按下enter键,保存并退出Dockerfile文件。

  1. 依次执行如下命令,构建镜像。
docker build -t webalibabacloudlinux:v1 .    #命令末尾的.是Dockerfile文件的路径,不能忽略。
docker images                                #查看是否创建成功。

返回结果如下,表示已成功构建镜像。

  1. 依次执行如下命令,运行容器并查看。
docker run -d webalibabacloudlinux:v1    #后台运行容器。
docker ps                                #查看当前运行中的容器。
docker ps -a                             #查看所有容器,包括未运行中的。
docker logs CONTAINER ID/IMAGE           #如未查看到刚才运行的容器,则用容器id或者名字查看启动日志排错。
  1. 执行如下命令,制作镜像。
docker commit CONTAINER ID dtstackweb:v1     #commit参数后添加容器ID和构建新镜像的名称和版本号。您需要将CONTAINER ID改为上一步查询到的IMAGE为webalibabacloudlinux:v1的CONTAINER ID。
docker images                                #列出本地(已下载的和本地创建的)镜像。

返回结果如下,表示已成功制作镜像。

  1. (选做)执行如下命令,将镜像推送至远程仓库。

默认推送到Docker Hub。您需要先登录Docker,为镜像绑定标签,将镜像命名为Docker用户名/镜像名:标签的格式。最终完成推送。

说明:本步骤需要您有Docker Hub的账号,若没有可忽略本步骤。

docker login --username=dtstack_plus registry.cn-shanghai.aliyuncs.com    #执行后输入镜像仓库密码。
docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/dtstack123/test:[标签]
docker push registry.cn-shanghai.aliyuncs.com/dtstack123/test:[标签]

实验链接:https://developer.aliyun.com/adc/scenario/811452510fc24aa4af0509a38c94c625

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
54 1
Linux系统之部署轻量级Markdown文本编辑器
|
6天前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
64 41
Linux系统之部署homer静态主页
|
8天前
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
15 1
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
10天前
|
存储 前端开发 测试技术
【Docker项目实战】使用Docker部署Calcium网页计算器
【10月更文挑战第7天】使用Docker部署Calcium网页计算器
20 1
【Docker项目实战】使用Docker部署Calcium网页计算器
|
12天前
|
Web App开发 资源调度 网络协议
Linux系统之部署IP工具箱MyIP
【10月更文挑战第5天】使用Docker部署Radicale日历和联系人应用Linux系统之部署IP工具箱MyIP
42 1
Linux系统之部署IP工具箱MyIP
|
7天前
|
Web App开发 前端开发 测试技术
【Docker项目实战】使用docker部署tabler后台模版
【10月更文挑战第10天】使用docker部署tabler后台模版
20 0
【Docker项目实战】使用docker部署tabler后台模版
|
9天前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
22 0
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
3天前
|
运维 Kubernetes 监控
掌握Docker容器化技术:构建、部署与管理的高效实践
【10月更文挑战第14天】掌握Docker容器化技术:构建、部署与管理的高效实践
11 0
|
4天前
|
关系型数据库 数据库 PostgreSQL
在docker上部署postgresSQL主从
通过以上步骤,我们完成了在Docker环境中部署PostgreSQL主从复制的基本配置。请注意,实际生产环境中还需考虑安全性增强(如SSL加密)、监控、自动故障切换等高级配置。此外,根据具体的业务需求和规模,可能还需要考虑使用更专业的解决方案或工具,如Patroni、PgBouncer等,来进一步提升数据库集群的稳定性和效率。
11 0
|
2天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
13 5