更新时间:2026-08-27 GMT+08:00

手工部署Docker

简介

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

表1 Docker相关术语

术语

解释

Docker

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

镜像

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

容器

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

该指导以CentOS 7.5 64bit(40GiB)、Debian 12.0.0 64bit、Ubuntu 22.04操作系统为例,Docker要求64位的系统且内核版本至少为3.10。

前提条件

  • 已购买L实例,且L实例为“运行中”状态。
  • L实例所在安全组添加了如下表所示的安全组规则,具体步骤参见配置Flexus L实例安全组规则
    表2 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    IPv4

    TCP: 80

    0.0.0.0/0

部署Docker

请根据当前的操作系统,查看并执行对应的操作步骤。

  1. 登录Flexus应用服务器L实例控制台
  2. 在资源卡片上,单击图标,单击“重置密码”,根据界面提示设置L实例的密码。

    L实例无初始密码,创建L实例后,如需登录云主机,请先设置L实例的密码。如果已经设置过密码,请跳过此步骤。

    更多详情请参见重置Flexus L实例密码

  3. 单击资源卡片上的“远程登录”按钮,在弹出的登录窗口中,单击“VNC登录”,根据界面提示输入用户名密码登录Flexus L实例。用户名为root,密码为上一步设置的密码。

    更多登录方式请参见登录方式概述

  4. 登录云主机后,执行以下命令添加yum源。
    yum install epel-release -y
    yum clean all
  5. 安装yum-utils。
    yum install -y yum-utils device-mapper-persistent-data lvm2
  6. 设置docker yum源。
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  7. 安装并运行Docker。
    yum -y install docker-ce
    systemctl enable docker
    systemctl start docker
  8. 检查安装结果。
    docker --version

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

    Docker version 26.1.4, build 5650f9b
  1. 登录Flexus应用服务器L实例控制台
  2. 在资源卡片上,单击图标,单击“重置密码”,根据界面提示设置L实例的密码。

    L实例无初始密码,创建L实例后,如需登录云主机,请先设置L实例的密码。如果已经设置过密码,请跳过此步骤。

    更多详情请参见重置Flexus L实例密码

  3. 单击资源卡片上的“远程登录”按钮,在弹出的登录窗口中,单击“VNC登录”,根据界面提示输入用户名密码登录Flexus L实例。用户名为root,密码为上一步设置的密码。

    更多登录方式请参见登录方式概述

  4. 登录云主机后,执行以下命令更新软件包列表。
    sudo apt-get update
  5. 添加Docker软件包源。
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    sudo curl -fsSL https://mirrors.huaweicloud.com/docker-ce/linux/debian/gpg | sudo apt-key add -
    sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.huaweicloud.com/docker-ce/linux/debian $(lsb_release -cs) stable"
  6. 安装并运行Docker。
    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    sudo systemctl start docker
    sudo systemctl enable docker
  7. 查看docker版本信息。
    docker -v

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

    Docker version 28.3.3, build 980b856
  1. 登录Flexus应用服务器L实例控制台
  2. 在资源卡片上,单击图标,单击“重置密码”,根据界面提示设置L实例的密码。

    L实例无初始密码,创建L实例后,如需登录云主机,请先设置L实例的密码。如果已经设置过密码,请跳过此步骤。

    更多详情请参见重置Flexus L实例密码

  3. 单击资源卡片上的“远程登录”按钮,在弹出的登录窗口中,单击“VNC登录”,根据界面提示输入用户名密码登录Flexus L实例。用户名为root,密码为上一步设置的密码。

    更多登录方式请参见登录方式概述

  4. 登录云主机后,执行以下命令更新软件包列表。
    sudo apt-get update
  5. 添加Docker软件包源。
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    sudo curl -fsSL https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  6. 安装并运行Docker。
    sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    sudo systemctl start docker
    sudo systemctl enable docker
  7. 查看docker版本信息。
    docker -v

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

    Docker version 28.3.3, build 980b856

Docker基本用法

  1. Docker进程管理。
    • 运行Docker
      systemctl start docker
    • 停止Docker
      systemctl stop docker
    • 重启Docker
      systemctl restart docker
  2. 镜像管理。
    1. 拉取镜像。此处以Apache和CentOS官方镜像为例。
      docker pull httpd
      docker pull centos:7
    2. 查看已有镜像
      docker images

    3. 强制删除镜像
      docker rmi centos:7
  3. 容器管理。
    1. 创建一个容器并运行。
      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。

    2. 查看容器启动情况。
      docker ps -a

    3. 在浏览器输入L实例的弹性公网IP,访问测试容器运行情况。出现以下内容表示运行成功。

镜像制作

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

  1. 创建一个名为Dockerfile的文件。
    mkdir mynginx
    cd mynginx
    touch Dockerfile
  2. 编辑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!”的文字。
  3. 构建镜像。
    docker build -t nginx:v3 .
    • -t nginx:v3:指定镜像的名称和版本。
    • .:指定上下文路径,镜像构建命令将该路径下所有的内容打包给Docker引擎帮助构建镜像。
  4. 查看部署的nginx镜像,版本为v3。
    docker images