手工部署Docker(CentOS 7.5)
简介
本文介绍了如何在华为云上使用弹性云服务器的Linux实例手工部署Docker,并提供了Docker常用操作及简单的镜像制作过程。
| 
        术语  | 
      
        解释  | 
     
|---|---|
| 
        Docker  | 
      
        Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。  | 
     
| 
        镜像  | 
      
        Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。  | 
     
| 
        容器  | 
      
        镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。  | 
     
更多关于Docker、镜像、容器的基础知识,请参见Docker Documentation。
该指导以“CentOS 7.5 64bit(40GiB)”操作系统为例,Docker要求64位的系统且内核版本至少为3.10。
前提条件
资源和成本规划
本次实践所用的资源配置及软件版本如表3中所示。当您使用不同的硬件规格或软件版本时,本指导中的命令及参数可能会发生改变,需要您根据实际情况进行调整。
| 
        资源  | 
      
        资源说明  | 
      
        成本说明  | 
     
|---|---|---|
| 
        虚拟私有云VPC  | 
      
        VPC网段:192.168.0.0/16  | 
      
        免费  | 
     
| 
        虚拟私有云子网  | 
      
       
  | 
      
        免费  | 
     
| 
        安全组  | 
      
       
  | 
      
        免费  | 
     
| 
        弹性云服务器  | 
      
       
  | 
      
        ECS涉及以下几项费用: 
 具体的计费方式及标准请参考计费模式概述。  | 
     
| 
        Docker  | 
      
        获取方式:  | 
      
        免费  | 
     
部署Docker
- 登录弹性云服务器。
 - 添加yum源。
    
yum install epel-release -y yum clean all
 - 安装yum-utils。
    
yum install -y yum-utils device-mapper-persistent-data lvm2
 - 设置docker yum源。
    
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 - 安装并运行Docker。
    
yum -y install docker-ce systemctl enable docker systemctl start docker
 - 检查安装结果。
    
docker --version
回显如下类似信息,表示Docker安装成功。
Docker version 26.1.4, build 5650f9b
 
Docker基本用法
- Docker进程管理。
    
- 运行Docker
      
systemctl start docker
 - 停止Docker
      
systemctl stop docker
 - 重启Docker
      
systemctl restart docker
 
 - 运行Docker
      
 - 镜像管理。
    
- 拉取镜像。此处以Apache和CentOS官方镜像为例。
      
docker pull httpd docker pull centos
 - 查看已有镜像
      
docker images

 - 强制删除镜像
      
docker rmi centos
 
 - 拉取镜像。此处以Apache和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 '<h1>Hello, Docker!</h1>' > /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
 
    
      