银河麒麟服务器操作系统 V4
docker 软件适配手册
天津麒麟信息技术有限公司
2019 年 6 月
银河麒麟服务器操作系统 V4 docker 软件适配手册
目 录
1 概述..................................................................................................................................... 2
1.1 系统概述......................................................................................................................... 2
1.2 环境概述......................................................................................................................... 2
1.3 DOCKER 及相关软件简介............................................................................................2
1.4 架构及原理..................................................................................................................... 2
1.4.1 优点...............................................................................................................................4
2 使用方法.............................................................................................................................4
1) 安装 DOCKER 及相关软件...................................................................................... 4
2) 设置开机自启动并启动 DOCKER-CE...................................................................4
3)
DOCKER 容器使用................................................................................................... 5
3.1 DOCKER 客户端........................................................................................................... 5
3.2 运行一个应用.................................................................................................................5
3.3 查看应用容器.................................................................................................................5
3.4 网络端口的快捷方式.................................................................................................... 6
3.5 查看应用程序日志........................................................................................................ 6
3.6 查看应用程序容器的进程............................................................................................6
3.7 检查应用程序.................................................................................................................7
3.8 停止应用容器.................................................................................................................8
3.9 重启应用容器.................................................................................................................8
3.10 移除应用容器...............................................................................................................8
4)
DOCKER 容器连接................................................................................................... 8
1.1 网络端口映射.................................................................................................................9
1.2 DOCKER 容器连接.....................................................................................................10
1.2.1 容器命名................................................................................................................... 10
5)
DOCKER 镜像使用.................................................................................................10
3.1 列出镜像列表...............................................................................................................10
3.2 获取一个新的镜像...................................................................................................... 11
3.3 查找镜像....................................................................................................................... 12
3.4 创建镜像....................................................................................................................... 12
3.5 更新镜像....................................................................................................................... 12
I
银河麒麟服务器操作系统 V4 docker 软件适配手册
1 概述
1.1 系统概述
银河麒麟服务器操作系统主要面向军队综合电子信息系统、金融系统以及电
力系统等国家关键行业的服务器应用领域,突出高安全性、高可用性、高效数据
处理、虚拟化等关键技术优势,针对关键业务构建的丰富高效、安全可靠的功能
特性,兼容适配长城、联想、浪潮、华为、曙光等国内主流厂商的服务器整机产
品,以及达梦、金仓、神通、南大通用等主要国产数据库和中创、金蝶、东方通
等国产中间件,满足虚拟化、云计算和大数据时代,服务器业务对操作系统在性
能、安全性及可扩展性等方面的需求,是一款具有高安全、高可用、高可靠、高
性能的自主可控服务器操作系统。
1.2 环境概述
服务器型号
CPU 类型
操作系统版本
内核版本
docker 版本
长城信安擎天 DF720 服务器
飞腾 2000+处理器
Kylin-4.0.2-server-sp2-2000-19050910.Z1
4.4.131
18.06.1~ce
1.3
docker 及相关软件简介
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开
源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容
器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能
开销极低。
1.4 架构及原理
架构如下图所示:
2
银河麒麟服务器操作系统 V4 docker 软件适配手册
Docker 是一个 C/S 模式的架构,后端是一个松耦合架构。
用户使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后
者。
Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker
Server 的功能使其可以接受 Docker Client 的请求。
Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个
3
银河麒麟服务器操作系统 V4 docker 软件适配手册
Job 的形式的存在。
Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜
像,并通过镜像管理驱动 Graphdriver 将下载镜像以 Graph 的形式存
储。
当需要为 Docker 创建网络环境时,通过网络管理驱动 Networkdriver 创
建并配置 Docker 容器网络环境。
当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过
Execdriver 来完成。
Libcontainer 是一项独立的容器管理包,Networkdriver 以及 Execdriver
都是通过 Libcontainer 来实现具体对容器进行的操作。
1.4.1 优点
1,简化程序
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然
后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker 改变了虚拟化
的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理。方便快捷已经
是 Docker 的最大优势,过去需要用数天乃至数周的 任务,在 Docker 容器的处理
下,只需要数秒就能完成。
2、简化配置
Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用
实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集
群、消息队列等等都可以打包成一个镜像部署。
3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,
Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得
到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
2 使用方法
1) 安装 docker 及相关软件
[root@localhost ~]# apt-get install docker-ce docker-ce-cli containe
rd.io
2) 设置开机自启动并启动 Docker-ce
[root@localhost ~]#
[root@localhost ~]#
sudo systemctl enable docker
sudo systemctl start docker
4
银河麒麟服务器操作系统 V4 docker 软件适配手册
3) Docker 容器使用
3.1 Docker 客户端
docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有
命令选项。
[root@localhost ~]# docker
可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
3.2 运行一个应用
使用 docker 构建一个数据库应用程序。
我们将在 docker 容器中运行一个 postgres 应用来运行一个数据库应用。
[root@localhost ~]# docker pull postgres
[root@localhost ~]# docker run \
# 载入镜像
--name demo \
--privileged=true \
-e TZ='Asia/Shanghai' \
-e POSTGRES_USER=koji \
-e POSTGRES_DB=koji \
-e PGDATA=/tmp/
-v /root/data:/tmp/ \
-p 5432:5432 \
-v /root/pem/psql-run:/docker-entrypoint-initdb.d \
-d \
postgres
\
参数说明:
-d:让容器在后台运行。
-P:将容器内部使用的网络端口映射到我们使用的主机上。
3.3 查看应用容器
使用 docker ps 来查看我们正在运行的容器:
[root@localhost ~]# docker ps
CONTAINER ID
STATUS
64b5f66eb029
Up 2 days
IMAGE
PORTS
demo-0823
0.0.0.0:5432->5432/tcp
COMMAND
NAMES
"docker-entrypoint.s…"
demo-0104
CREATED
9 months ago
5
银河麒麟服务器操作系统 V4 docker 软件适配手册
这里多了端口信息。
PORTS
0.0.0.0:5432->5432/tcp
3.4 网络端口的快捷方式
通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 dock
er port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机
的端口号。
上面我们创建的应用容器 ID 为 64b5f66eb029 名字为 demo-0104。
我可以使用 docker port 64b5f66eb029 或 docker port demo-0104 来查看容器端口
的映射情况。
[root@localhost 2_demo]# docker port 64b5f66eb029
5432/tcp -> 0.0.0.0:5432
[root@localhost 2_demo]# docker port demo-0104
5432/tcp -> 0.0.0.0:5432
3.5 查看应用程序日志
docker logs [ID 或者名字] 可以查看容器内部的标准输出。
root@localhost:~# docker logs -f 64b5f66eb029
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
3.6 查看应用程序容器的进程
我们还可以使用 docker top 来查看容器内部运行的进程
[root@localhost 2_demo]# docker top demo-0104
UID
STIME
polkitd
Jun11
polkitd
Jun11
rocess
polkitd
Jun11
polkitd
Jun11
PID
3840
3900
3901
3902
TTY
?
?
?
?
CMD
C
0
postgres
0
postgres: checkpointer p
0
postgres: writer process
0
postgres: wal writer pro
PPID
TIME
3825
00:00:01
3840
00:00:00
3840
00:00:01
3840
00:00:01
6
银河麒麟服务器操作系统 V4 docker 软件适配手册
3903
3904
?
?
3840
00:00:01
3840
00:00:02
0
postgres: autovacuum lau
0
postgres: stats collecto
cess
polkitd
Jun11
ncher process
polkitd
Jun11
r process
3.7 检查应用程序
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Do
cker 容器的配置和状态信息。
[root@localhost 2_demo]# docker inspect demo-0104
[
{
",
"Id": "64b5f66eb029f048c28b77b31e47eb8644dc59a84f0db86345c39ef9ae36bce5
"Created": "2018-08-26T09:43:50.894829237Z",
"Path": "docker-entrypoint.sh",
"Args": [
"postgres"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 3840,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-06-11T06:28:47.716331395Z",
"FinishedAt": "2019-06-11T06:19:10.629685152Z"
},
"Image": "sha256:cb1efd8307d258d26134d69c12e0c72d031f04e3d8685475b3af747
e1bdfe6ed",
"ResolvConfPath": "/var/lib/docker/containers/64b5f66eb029f048c28b77b31e
47eb8644dc59a84f0db86345c39ef9ae36bce5/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/64b5f66eb029f048c28b77b31e47
eb8644dc59a84f0db86345c39ef9ae36bce5/hostname",
"HostsPath": "/var/lib/docker/containers/64b5f66eb029f048c28b77b31e47eb8
7