部署并使用Docker(CentOS 8)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本场景带您体验如何在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
相关文章
|
24天前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
112 18
|
1月前
|
前端开发 数据安全/隐私保护 计算机视觉
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
MAZANOKE 是一款简易的图片优化工具,它直接在浏览器中运行,支持离线使用,并确保您的图片始终保留在设备上,绝不外泄。 这款专为普通人设计的工具,适合与亲友分享使用,是那些来路不明的"免费"在线工具的可靠替代品。
53 1
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
|
2月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
219 18
【赵渝强老师】数据库不适合Docker容器化部署的原因
|
26天前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
122 12
|
2月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
208 20
|
2月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
151 10
|
3月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
206 23
|
4月前
|
安全 API 算法框架/工具
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
521 2
|
4月前
|
JSON 运维 Ubuntu
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
1447 8
|
3月前
|
存储 SQL 关系型数据库
docker部署n9e开源版本7.4.0
n9e开源版本7.4.0
175 0