【Docker】CentOS安装 Docker CE (二)

摘要:Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0 协议开源 。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。本文安装的Docker环境基于CentOS 7.4版本,主要介绍了使用yum 安装方式和使用脚本安装两种方式,其中也主要讲解如何配置Docker中国区官方镜像、配置相关的内核参数并启用。

准备工作

Docker EE && Docker CE

Docker从 17.03 开始分为 Docker EE (企业版)与 Docker CE(社区版),社区版并非阉割版,而是改了个名称;企业版则提供了一些收费的高级特性。

Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store 的、经过认证的容器和插件。

Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。

系统要求

Docker 支持以下的CentOS版本:
* CentOS 7 (64-bit)
* CentOS 6.5 (64-bit) 或更高的版本
目前,CentOS 仅发行版本中的内核支持Docker
Docker 运行在 CentOS 7 上,要求系统为 64 位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的CentOS上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

卸载旧版本

查看安装过的包:

[root@wx website]# yum list installed | grep docker
docker-ce.x86_64 18.06.0.ce-3.el7 @docker-ce-edge

使用以下命令卸载旧版本:

[root@wx website]# yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

删除镜像/容器等:

 [root@wx website]# rm -rf /var/lib/docker

查看系统版本

[root@wx ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@wx ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core)
Release:    7.4.1708
Codename:   Core
[root@wx ~]# cat /etc/issue
\S
Kernel \r on an \m

查看内核版本

[root@wx ~]# uname -r
3.10.0-693.2.2.el7.x86_64
[root@wx ~]# cat /proc/version
Linux version 3.10.0-693.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Sep 12 22:26:13 UTC 2017

安装 Docker

使用 yum 安装

先执行以下命令,安装依赖包:

[root@wx ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

更新 yum 软件源缓存,并安装 docker-ce,安装命令如下:

[root@wx ~]# yum makecache fast
[root@wx ~]# yum -y install docker

查看安装版本:

[root@wx ~]# docker --version
Docker version 18.06.0-ce, build 0ffa825

启动Docker CE

[root@wx ~]# systemctl enable docker
[root@wx ~]# systemctl start docker

查看进程:

[root@wx ~]# pstree | grep docker
        |-dockerd-+-docker-containe---8*[{docker-containe}]
        | `-8*[{dockerd}]

使用脚本安装

① 使用sudoroot权限登录CentOS
② 确保yum包更新到最新。

[root@wx ~]# yum update

③ 执行Docker安装脚本。

[root@wx ~]# curl -fsSL https://get.docker.com/ | sh

④ 启动Docker进程。

[root@wx ~]# sudo service docker start

启动 Docker 后台服务

service 命令的用法:

[root@wx ~]# service docker start
Redirecting to /bin/systemctl start docker.service

systemctl 命令的用法:

[root@wx ~]# systemctl start docker
Redirecting to /bin/systemctl start docker.service

查看 Docker 版本信息

[root@wx ~]# docker version
Client:
 Version: 18.06.0-ce
 API version: 1.38
 Go version: go1.10.3
 Git commit: 0ffa825
 OS/Arch: linux/amd64
 Experimental: false

Server:
 Engine:
  Version: 18.06.0-ce
  API version: 1.38 (minimum version 1.12)
  Go version: go1.10.3
  Git commit: 0ffa825
  OS/Arch: linux/amd64
  Experimental: false

查看 Docker 系统信息

[root@wx ~]# docker info
Containers: 0
Server Version: 18.06.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true

配置国内镜像

Docker可以配置的国内镜像有很多可供选择,比如说:阿里云,网易蜂巢,DaoCloudDocker中国区官方镜像等。
下面以配置Docker中国区官方镜像为例:

使用 vim 修改(如果不存在请创建)/etc/docker/daemon.json文件并添加上”registry-mirrors”: [“https://registry.docker-cn.com“],如下:

[root@wx ~]# vim /etc/docker/daemon.json 
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

注意,一定要保证该文件符合json规范,否则 Docker将不能启动。

不符合 json 规范时报错如下:

[root@wx ~]# systemctl restart docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

配置完之后执行下面两条命令,以使 Docker 的配置文件生效:

[root@wx ~]# systemctl daemon-reload
[root@wx ~]# systemctl restart docker

在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

[root@wx ~]# docker info
Registry Mirrors:
 https://registry.docker-cn.com/

添加内核参数

在命令行执行 docker info,如果从结果中看到了如下内容:

[root@wx ~]# docker info
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

需要执行以下命令,添加内核配置参数以启用这些功能:

[root@wx ~]# tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

然后重新加载 sysctl.conf 即可:

[root@wx ~]# sysctl -p

简单使用

测试运行 Hello-world 镜像

验证Docker是否安装成功并在容器中执行一个测试的镜像。

[root@wx ~]# docker container run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

由于本地没有 hello-world 这个镜像,所以会下载一个 hello-world 的镜像,并在容器内运行。

获取镜像

Docker Hub 中获取镜像ubuntu:16.04:

[root@wx ~]# docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
8ee29e426c26: Pull complete
6e83b260b73b: Pull complete
e26b65fd1143: Pull complete
40dca07f8222: Pull complete
b420ae9e10b3: Pull complete
Digest: sha256:3097ac92b852f878f802c22a38f97b09**4084dbef82893ba453ba0297d76a6a
Status: Downloaded newer image for ubuntu:16.04

上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 ubuntu:16.04,因此将会获取官方镜像 library/ubuntu 仓库中标签为 16.04 的镜像。

列出镜像

[root@wx ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               7aa3602ab41e        2 weeks ago         115MB
hello-world         latest              2cb0d9787c4d        4 weeks ago         1.85kB

运行容器

ubuntu:16.04为基础镜像启动并运行一个容器:

[root@wx ~]# docker run -it --rm \
                    ubuntu:16.04 \
                    bash
参数 说明
docker run 运行容器的命令
-i (interactive) 交互式操作
-t (terminal) 终端
ubuntu:16.04 以ubuntu:16.04 镜像为基础来启动容器
bash 交互式 Shell

进入后,在容器中查看系统版本:

root@8c06e6db41ef:/# cat /etc/issue
Ubuntu 16.04.5 LTS \n \l

参考文档

Docker -- 从入门到实践

Docker 官方 CentOS 安装文档

相关推荐

微信扫一扫,分享到朋友圈

【Docker】CentOS安装 Docker CE (二)
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close