Cenots7.6 安装部署 Docker 环境

1. Docker概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙盒机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。

1.1 扩展:沙盒

沙盒也叫沙箱,英文sandbox。在计算机领域指一种虚拟技术,且多用于计算机安全技术。安全软件可以先让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成任何危害。Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,源代码托管在Github上, 基于go语言并遵从Apache2.0协议开源。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的container中,然后发布到任何流行的Linux机器上。扩LXC为Linux Container的简写。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。LXC主要通过来自kernel的namespace实现每个用户实例之间的相互隔离,通过cgroup实现对资源的配额和度量。1

1.2 官方网站

https://www.docker.com/

docker服务相当于鲸鱼,container容器就是集装箱。

1.3 源代码下载:

https://github.com/docker/docker/

1.4 Docker容器技术和虚拟机对比

相同点: Docker 容器技术和虚拟机技术,都是虚拟化技术

1.5 总结:

Docker 相对于VM虚拟机,少了虚拟机操作系统这一层,所以Docker效率比虚拟机高你的物理系统启动使用几秒? 10秒

1.6 工作流程:

服务器A上运行 Docker Engine 服务,在docker Engine上启动很多容器 Container , 从外网 Docker Hub上把image操作系统镜像下载来,放到Container容器运行。这样一个容器的实例就运行起来了。最后,通过Docker Client 对docker 容器虚拟化平台进行控制。

Image和Container的关系:image可以理解为一个系统镜像,Container是Image在运行时的一个状态。 如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。 

Dockerhub:dockerhub 是docker官方的镜像存储站点,其中提供了很多常用的镜像供用户下载,如ubuntu, centos等系统镜像。通过 Dockerhub 用户也可以发布自己的docker镜像,为此用户需要注册一个账号,在网站上创建一个docker仓库。

1.7 Docker 核心技术

:Cgroup的配额,可以指定实例使用的cpu个数为2个,内存大小为4G,vmware虚拟机中的硬件配置参数。

1.8 Docker特性

1.9 优点:

比VM小,比VM快,Docker容器的尺寸减小相比整个虚拟机大大简化了分布到云和从云分发时间和开销。Docker启动一个容器实例时间很短,一两秒就可以启动一个实例。

Docker使应用程序能够快速从组件组装和避免开发和生产环境之间的摩擦。

1.10 缺点局限性

2、部署 Docker 容器虚拟化平台

操作系统CentOS7.6 x64
Docker 版本1.13.1

3、安装步骤

hostnamectl set-hostname docker

4、配置系统Docker-Ce 源 为清华大学

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

5、安装 Docker 软件包

yum -y install docker
systemctl enable docker.service
systemctl start docker.service
docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-75.git8633870.el7.centos.x86_64
 Go version:      go1.9.4
 Git commit:      8633870/1.13.1
 Built:           Fri Sep 28 19:45:08 2018
 OS/Arch:         linux/amd64
docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: overlay2

6、配置镜像Docker 加速器

解决

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 修改文件

如果报错 error pulling image configuration。出现这个问题,导致无法去Docker Hub仓库下载镜像。可以通过配置国内 daocloud镜像源解决这个问题。

编辑 /etc/sysconfig/docker 配置文件,在OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false 后面添加国内的docker镜像源 --registry-mirror=http://f2d6cd40.m.daocloud.io

在文件中添加以下内容:

vim /etc/sysconfig/docker

修改为:

--signature-verification=false --registry-mirror=http://f2d6cb40.m.daocloud.io'

或者:

sed -i "s@signature-verification=false.*@signature-verification=false --registry-mirror=http://f2d6cb40.m.daocloud.io'@" /etc/sysconfig/docker

然后把 daemon.json 修改为:

cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": ["https://加速器器地址.mirror.aliyuncs.com"],
    "live-restore": true
}
EOF

添加后重启docker 服务,即可解决网络影响下载问题

systemctl daemon-reload
systemctl restart docker
docker search centos

如果 OFFICIAL 为 [ok] ,说明可以放心使用

方法1:从公网docker hub 拉取(下载)image pull:拉

docker pull docker.io/centos

方法2:把之前下载好的image镜像导入image:

参数: -i " docker.io-centos.tar " 指定载入的镜像归档。

docker load -i  /root/docker.io-centos.tar

方法3:直接下载其他站点的镜像:

docker pull hub.c.163.com/library/tomcat:latest

查看 images 列表
列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询

docker images ls

开启动网络转发功能

vim /etc/sysctl.conf

插入以下内容

net.ipv4.ip_forward = 1
sysctl  -p