华为云服务器手工部署Docker(CentOS 7.5)_云淘科技

简介

本文介绍了如何在华为云上使用弹性云服务器的Linux实例手工部署Docker,并提供了Docker常用操作及简单的镜像制作过程。

表1 Docker相关术语

术语

解释

Docker

Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。

镜像

Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

更多关于Docker、镜像、容器的基础知识,请参见Docker Documentation。

该指导以“CentOS 7.5 64 3.10.0-862.9.1.el7.x86_64”操作系统为例,Docker要求64位的系统且内核版本至少为3.10。

您还可以选择Solution as Code一键式部署方式自动部署Docker Swarm集群,详细内容请参见快速部署高可用的Docker Swarm集群。

前提条件

弹性云服务器需要绑定弹性公网IP,具体步骤参见为弹性云服务器申请和绑定弹性公网IP。
弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见添加安全组规则。

表2 安全组规则

方向

类型

协议

端口/范围

远端

入方向

IPv4

TCP

80

0.0.0.0/0

部署Docker

登录弹性云服务器。
为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用华为云提供的epel镜像源(x86_64和ARM)?。
添加yum源。

yum install epel-release -y

yum clean all

安装yum-util。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置docker yum源。

sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装并运行Docker。

sudo yum install docker-ce

systemctl enable docker

systemctl start docker

检查安装结果。

docker –version

回显如下类似信息,表示Docker安装成功。

Client: Docker Engine - Community
 Version:           19.03.13

Docker基本用法

Docker进程管理。

运行Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

镜像管理。

拉取镜像。此处以Apache和CentOS官方镜像为例。

docker pull httpd

docker pull centos

查看已有镜像

docker images

强制删除镜像

docker rmi centos

容器管理。

创建一个容器并运行。

docker run -it -d -p 80:80 –name datahttpd -v /data/:/var/www/httpd/ httpd

参数说明如下:

-i:以交互模式运行容器,通常与-t同时使用。
-t:为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:后台运行容器,并返回容器ID。
-p:端口映射,格式为“宿主机端口:容器端口”。
–name:为容器指定一个名称。
-v:把宿主机上的一个目录挂载到镜像里,格式为“宿主机目录:镜像内挂载的路径”,必须为绝对路径。

上述参数说明中的宿主机表示所创建的弹性云服务器实例。

示例命令表示:使用镜像httpd,以交互模式启动一个容器,将容器的80端口映射到宿主机的80端口,宿主机的目录/data映射到容器的/var/www/httpd目录,并返回容器ID。

查看容器启动情况。

docker ps -a

在浏览器输入弹性云服务器所绑定的弹性公网IP,访问测试容器运行情况。出现以下内容表示运行成功。

镜像制作

通过Dockerfile定制一个简单的Nginx镜像。

创建一个名为Dockerfile的文件。

mkdir mynginx

cd mynginx

touch Dockerfile

编辑Dockerfile。

vim Dockerfile

增加文件内容如下:

FROM nginx
RUN echo '

Hello, Docker!

' > /usr/share/nginx/html/index.html

Dockerfile指令介绍如下。以下仅介绍简单指令,如需了解更多,请参见官方网站https://docs.docker.com/。

FROM语句:表示使用nginx镜像作为基础镜像,一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。
RUN语句:格式为RUN ,表示执行echo命令,在显示器中显示一段“Hello, Docker!”的文字。

构建镜像。

docker build -t nginx:v3 .

-t nginx:v3:指定镜像的名称和版本。
.:指定上下文路径,镜像构建命令将该路径下所有的内容打包给Docker引擎帮助构建镜像。

查看部署的nginx镜像,版本为v3。

docker images

REPOSITORY          TAG             IMAGE ID              CREATED               SIZE
nginx               v3              09422e465d96          10 seconds ago        109 MB

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家