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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本场景带您体验如何在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
相关文章
|
1天前
|
监控 文件存储 Docker
实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
与电脑不同,NAS通常7x24小时运行,便于下载资源,解决BT/PT下载需长时间在线的问题。因此,qBittorrent、Transmission等下载管理工具成为NAS用户的必备应用。通过Docker,用户可在多种NAS设备上快速安装这些工具,并通过局域网IP地址+端口访问。然而,缺乏公网IPv4地址导致远程访问困难,贝锐花生壳提供了解决方案,允许无公网IP情况下通过固定域名远程访问NAS中的下载工具,简化了部署过程,使用户能随时随地控制家中的下载任务。
53 33
实现NAS远程下载,Docker部署qBittorrent、Transmission、贝锐花生壳
|
8天前
|
人工智能 API 数据库
FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
【9月更文挑战第5天】 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
 FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统(含sealos云端部署、docker部署、OneAPI&Xinference模型接入)
|
19天前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
58 15
Docker自建仓库之Harbor高可用部署实战篇
|
18天前
|
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
|
18天前
|
虚拟化 Docker Windows
window 10专业版部署docker环境
本文介绍了如何在Windows 10专业版上部署Docker环境,包括安装步骤、配置镜像加速以及可能遇到的错误处理。
41 2
window 10专业版部署docker环境
|
6天前
|
Devops jenkins 持续交付
DevOps实践:构建和部署一个Docker化的应用
【9月更文挑战第14天】在当今快节奏的软件开发领域,DevOps已经成为提升效率、加速交付的关键。本文将引导你理解DevOps的核心概念,并通过一个实际的示例—构建和部署一个Docker化的应用—来深入探讨其实践方法。我们将从简单的应用出发,逐步实现Docker容器化,并最终通过CI/CD流水线自动化部署过程。这不仅是对DevOps流程的一次实操演练,也是对现代软件开发理念的一次深刻体验。
|
19天前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
39 12
|
19天前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
67 5
|
18天前
|
NoSQL 关系型数据库 数据库
JumpServer的Docker部署实战案例
JumpServer的Docker部署实战案例,详细介绍了JumpServer的概述、环境准备、基于Docker的快速部署步骤,以及如何访问JumpServer的WebUI。
20 0
|
12天前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
42 6
Linux 中 Tail 命令的 9 个实用示例