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

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

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

1. 创建实验资源

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

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

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


2. 部署Docker

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

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

  • 安装yum源中默认的Docker。

执行如下命令,安装yum源中默认的Docker。

yum -y install docker
  • 安装社区版Docker(docker-ce)。
  1. 执行如下命令,下载docker-ce的yum源。
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 执行如下命令,安装Alibaba Cloud Linux 2专用的yum源兼容插件。

说明:仅当您的ECS实例为Alibaba Cloud Linux 2操作系统时,需要运行该命令。

yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
  1. 执行如下命令,安装docker-ce。
yum -y install docker-ce
  1. 执行如下命令,启动Docker服务。
systemctl start docker
  1. 执行如下命令,查看Docker服务的运行状态。
systemctl status docker

返回结果如下,表示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的运行状态

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/50245f0ae7664cf5a26d55bbc063d9ad

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
Kubernetes Java Docker
利用(K8S)配合Docker部署jar包
通过Docker打包并部署到Kubernetes(K8S)集群的过程。首先,通过SpringBoot生成jar包,接着在K8S环境中创建并编辑Dockerfile文件。随后构建Docker镜像,并将其推送到镜像仓库。最后,通过一系列kubectl命令(如get pods、get svc、logs等),展示了如何在K8S中管理应用,包括查看Pod状态、服务信息、Pod日志以及重启Pod等操作。
74 2
|
16天前
|
NoSQL 关系型数据库 MySQL
docker部署jumpserver及入门
docker部署jumpserver及入门
|
18天前
|
Kubernetes Devops 持续交付
DevOps实践:使用Docker和Kubernetes实现持续集成和部署网络安全的守护盾:加密技术与安全意识的重要性
【8月更文挑战第27天】本文将引导读者理解并应用DevOps的核心理念,通过Docker和Kubernetes的实战案例,深入探讨如何在现代软件开发中实现自动化的持续集成和部署。文章不仅提供理论知识,还结合真实示例,旨在帮助开发者提升效率,优化工作流程。
|
1天前
|
人工智能 API 数据库
FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
【9月更文挑战第5天】 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
|
11天前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
48 15
Docker自建仓库之Harbor高可用部署实战篇
|
11天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
11天前
|
虚拟化 Docker Windows
window 10专业版部署docker环境
本文介绍了如何在Windows 10专业版上部署Docker环境,包括安装步骤、配置镜像加速以及可能遇到的错误处理。
32 2
window 10专业版部署docker环境
|
12天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
91 18
|
11天前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
32 12
|
11天前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
52 5