您的位置:首页 > 运维架构 > Docker

Docker-初始docker

2017-11-19 20:34 162 查看

一、什么是Docker

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。





二、为什么要使用docker

为什么要使用docker

三、docker基本概念

Docker 包括三个基本概念

镜像(Image)

容器(Container)

仓库(Repository)(包含了一些镜像加速器和Registry地址)

理解了这三个概念,就理解了 Docker 的整个生命周期。简单来说,镜像与容器的关系类似面向对象的类与实例的关系。镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

四、docker的安装(摘自:Centos安装Docker CE

a、安装docker ce

按照官网安装教程进行安装:官方有Mac、Windows、Ubuntu、Debian、Centos等安装教程

阿里云Docker CE安装镜像帮助文档:阿里云Docker CE镜像源站

因网络问题,本文是参考 阿里云Docker CE镜像源站 方式安装的Centos版的Docker CE。安装成功后:



[root@localhost local]# sudo service docker start
Redirecting to /bin/systemctl start docker.service
[root@localhost local]# docker version

Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:41:23 2017
OS/Arch: linux/amd64

Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:42:49 2017
OS/Arch: linux/amd64
Experimental: false
[root@localhost Desktop]#


出现版本信息表示安装成功。

b、配置国内镜像加速器

配置阿里加速器:

参考:镜像加速器

登陆阿里云账号,访问地址:https://cr.console.aliyun.com/#/accelerator ,会有一个专有的加速地址:



按提供的方法配置docker加速器,如果已经存在 /etc/docker 文件夹,就不需要执行 sudo mkdir -p /etc/docker 命令:



配置daocloud加速器:(配置方法:daocloud官方



[root@localhost Desktop]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f79ca91e.m.daocloud.io docker version >= 1.12
{
"registry-mirrors": ["http://f79ca91e.m.daocloud.io"]
}
Success.
You need to restart docker to take effect: sudo systemctl restart docker
[root@localhost Desktop]# sudo systemctl restart docker
[root@localhost Desktop]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
bc95e04b23c0: Downloading 10.06MB/22.49MB
f3186e650f4e: Downloading 9.407MB/21.95MB
9ac7d6621708: Download complete


c、检查加速器

命令:docker info ,如下信息表示配置成功



[root@localhost docker]# docker info
Containers: 0
……

……
Registry Mirrors: https://xxxxxxxx.mirror.aliyuncs.com/ Live Restore Enabled: false


默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:


WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled



请添加内核配置参数以启用这些功能。

[root@localhost Desktop]# sudo tee -a /etc/sysctl.conf <<-EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost Desktop]#


然后重新加载
sysctl.conf
即可

[root@localhost Desktop]# sudo sysctl -p
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost Desktop]#


d、建立 docker 用户组

默认情况下,
docker
命令会使用 Unix socket 与 Docker 引擎通讯。而只有
root
用户和
docker
组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用
root
用户。因此,更好地做法是将需要使用
docker
的用户加入
docker
用户组。

建立
docker
组:

先查看是否存在docker用户组

[root@localhost Desktop]# grep docker /etc/group


不存在就新建docker分组:

[root@localhost Desktop]# sudo groupadd docker


为当前用户
docker
组创建用户(dockuser)并设置密码(dockuser):

[root@localhost Desktop]# useradd -G docker dockuser
[root@localhost Desktop]# passwd dockuser
Changing password for user dockuser.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: