部署并使用Docker(CentOS 8)

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

部署并使用Docker(CentOS 8)

1. 创建实验资源

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

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

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


2. 部署Docker

本步骤指导您如何在ECS实例上部署Docker

说明:本实验使用的CentOS 8.5操作系统已经切换过CentOS 8源地址。如果您在非本实验的CentOS 8操作系统环境中部署Docker时,需要手动切换CentOS 8源地址。具体操作,请参见CentOS 8 EOL如何切换源?

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

说明:本实验环境中已安装过dnf,您可忽略本步骤。

yum -y install dnf
  1. 执行如下命令,安装Docker存储驱动的依赖包。

说明:本实验环境中已安装过Docker存储驱动的依赖包,您可忽略本步骤。

dnf install -y device-mapper-persistent-data lvm2
  1. 执行如下命令,添加稳定的Docker软件源。
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 执行如下命令,查看已添加的Docker软件源。
dnf list docker-ce

返回结果如下,您可查看到已添加的Docker软件源。

  1. 执行如下命令,安装docker-ce。
dnf install -y docker-ce --nobest
  1. 执行如下命令,启动Docker服务。
systemctl start docker
  1. 执行如下命令,查看Docker服务的运行状态。
systemctl status docker

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

  1. 执行如下命令,查看Docker的版本。
docker -v

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


3. 使用Docker

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

  1. 管理Docker守护进程。

说明:通过yum源的方式安装的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:[标签]


5. 清理及后续

清理

ECS提供的个人版试用实例为按量付费实例。完成教程后,请参考以下规则处理实例:

  • 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。
  • 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

后续

  • 在Docker中构建、部署和管理应用程序。更多信息,请参见Docker官网
  • 停止容器。命令如下:
docker ps     #查看运行容器的容器ID(CONTAINER ID)
docker stop [容器ID]

实验链接:https://developer.aliyun.com/adc/scenario/4688da5b55f14fdd9a06bec9940e54e3

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
监控 文件存储 Docker
实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
与电脑不同,NAS通常7x24小时运行,便于下载资源,解决BT/PT下载需长时间在线的问题。因此,qBittorrent、Transmission等下载管理工具成为NAS用户的必备应用。通过Docker,用户可在多种NAS设备上快速安装这些工具,并通过局域网IP地址+端口访问。然而,缺乏公网IPv4地址导致远程访问困难,贝锐花生壳提供了解决方案,允许无公网IP情况下通过固定域名远程访问NAS中的下载工具,简化了部署过程,使用户能随时随地控制家中的下载任务。
129 33
实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
|
10天前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
|
7天前
|
应用服务中间件 Docker 容器
docker应用部署---Tomcat的部署配置
这篇文章介绍了如何使用Docker部署Tomcat服务器,包括搜索和拉取Tomcat镜像、创建容器并设置端口映射和目录映射,以及如何创建一个HTML页面并使用外部机器访问Tomcat服务器。
docker应用部署---Tomcat的部署配置
|
7天前
|
关系型数据库 MySQL 数据安全/隐私保护
docker应用部署---MySQL的部署配置
这篇文章介绍了如何使用Docker部署MySQL数据库,包括搜索和拉取MySQL镜像、创建容器并设置端口映射和目录映射、进入容器操作MySQL,以及如何使用外部机器连接容器中的MySQL。
docker应用部署---MySQL的部署配置
|
22天前
|
人工智能 API 数据库
FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
【9月更文挑战第5天】 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
|
8天前
|
前端开发 应用服务中间件 nginx
docker部署本地前端项目思路
docker部署本地前端项目思路
23 7
|
7天前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
1月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
181 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
9天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
14天前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
29 1
下一篇
无影云桌面