安装前的准备工作

在安装容器引擎前,请了解容器引擎的基础知识,具体请参见Docker Documentation

选择容器引擎的版本

容器引擎几乎支持在所有操作系统上安装,用户可以根据需要选择要安装的容器引擎版本,具体请参见https://docs.docker.com/engine/install/。

说明:由于SWR支持容器引擎1.11.2及以上版本上传镜像,建议下载对应版本。

安装容器引擎需要连接互联网,内网服务器需要绑定弹性公网IP后才能访问。

安装容器引擎

你可以根据自己的操作系统选择对应的安装步骤:

Linux操作系统下安装

在Linux操作系统下,可以使用如下命令快速安装Docker的最新稳定版本。如果您想安装其他特定版本的Docker,可参考安装Docker

curl -fsSL get.docker.com -o get-docker.sh

sh get-docker.sh

sudo systemctl daemon-reload

sudo systemctl restart docker

EulerOS操作系统下安装

在EulerOS操作系统下,安装容器引擎的方法如下:

登录弹性云服务器。

配置yum源。

如果您的机器上还没有配置yum源,可以参照如下方法配置:如何使用自动化工具配置华为云镜像源(x86_64和ARM)?如果已配置,可跳过该步骤。

安装并运行容器引擎。

获取yum源里的docker-engine包。

yum search docker-engine

使用yum install -y命令安装上一步获取的docker-engine包,x86架构示例:

yum install docker-engine.x86_64 -y

设置开机启动Docker服务。

systemctl enable docker

启动Docker。

systemctl start docker

检查安装结果。

docker --version

回显如下类似信息,表示容器引擎安装成功。

Docker version 18.09.0, build 384e3e9

制作容器镜像

本节指导您通过Dockerfile定制一个简单的Web应用程序的容器镜像。Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

使用Nginx镜像创建容器应用,在浏览器访问时则会看到默认的Nginx欢迎页面,本节以Nginx镜像为例,修改Nginx镜像的欢迎页面,定制一个新的镜像,将欢迎页面改为“Hello, SWR!”。

以root用户登录容器引擎所在机器。

创建一个名为Dockerfile的文件。

mkdir mynginx

cd mynginx

touch Dockerfile

编辑Dockerfile。

vim Dockerfile

增加文件内容如下:

FROM nginx

RUN echo '<h1>Hello, SWR!</h1>' > /usr/share/nginx/html/index.html

Dockerfile指令介绍如下。

FROM语句:表示使用nginx镜像作为基础镜像,一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。

RUN语句:格式为RUN <命令>,表示执行echo命令,在显示器中显示一段“Hello, SWR!”的文字。

按“Esc”,输入:wq,保存并退出。


使用docker build [选项] <上下文路径> 构建镜像。

docker build -t nginx:v1 .

-t nginx:v1:指定镜像的名称和版本。

.:指定Dockerfile所在目录,镜像构建命令将该路径下所有的内容打包给容器引擎帮助构建镜像。


执行以下命令,可查看到已成功部署的nginx镜像,版本为v1。

docker images


制作镜像压缩包

本节指导您将容器镜像制作成tar或tar.gz文件压缩包。

以root用户登录容器引擎所在机器。

执行如下命令查看镜像。

docker images

查看需要导出的镜像及tag。

执行如下命令制作镜像压缩包。

docker save [OPTIONS] IMAGE [IMAGE...]

说明:OPTIONS:--output或-o,表示导出到文件。

压缩包格式为:.tar或.tar.gz。

使用docker save制作镜像压缩包时,请用{image}:{tag},不要用image id,否则无法在swr页面上传。

示例:

$ docker save nginx:latest > nginx.tar

$ ls -sh nginx.tar

108M nginx.tar


$ docker save php:5-apache > php.tar.gz

$ ls -sh php.tar.gz

372M php.tar.gz


$ docker save --output nginx.tar nginx

$ ls -sh nginx.tar

108M nginx.tar


$ docker save -o nginx-all.tar nginx # 将nginx所有版本打包

$ docker save -o nginx-latest.tar nginx:latest


导入镜像文件

本章节将指导你通过docker load命令将镜像压缩包导入为一个镜像。

执行方式有2种:

docker load < 路径/文件名.tar

docker load --input或者-i 路径/文件名.tar

示例:

$ docker load --input fedora.tar