Docker简介与安装

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成

序号 组成部分
1 Docker Client客户端
2 Docker Daemon守护进程
3 Docker Image镜像
4 Docker Container容器

Docker架构

Docker使用客户端--服务器(c/s)架构模式,使用远程API来管理和创建Docker容器。Docker

容器通过Docker镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类

Docker 面向对象
容器 对象
镜像

Docker采用C/S架构,Docker daemon作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。客户端和服务端即可以运行在一台机器上,也可通过socket或者RESTful API来进行通信

Docker daemon 一般在宿主主机后台上运行,等待接收来自客户端的消息。Docker客户端则为用户提供一系统可执行命令,用户通过使用这些命令实现跟Docker daemon交互

Docker架构图

1586853652436

Docker三在核心要素:镜像(Image)、容器(Container)、仓库(Registry)

镜像(Image)

打包了业务代码及运行环境的包,是静态的文件,不能直接对外提供服务

容器(Container)

镜像的运行时,可以对外提供服务。本质上讲是利用namespace和cgroup等技术在宿主机 创建的独立的虚拟空间

仓库(Registry):

(1)公有仓库,如:Docker Hub,阿里,网易等
(2)私有仓库,企业内部搭建
   Docker Registry,Docker官方提供的镜像仓库存储服务
   Harbor,是Docker Registry的更高级封装,它提供友好的Web UI界面,角色和用户权    限管理,用户操作审计等功能
(3)镜像访问地址形式:registry.devops.com/demo/hello:latest,若没有前面的url地址,则默认会去寻找Docker Hub中的镜像,若没有tag标签,则使用latest作为标签
(4)公有仓库中,一般存在下面几类镜像
   1)操作系统基本镜像(CentOS,ubuntu,suse,alpine等)
   2)中间件(nginx,redis,mysql,tomcat等)
   3)语言编译环境(python,java,golang等)
   4)业务镜像(django-demon等)

1586853355999

Linux内核提供了6种namespace隔离的系统调用,如下所示

namespace 系统调用参数 隔离内容
UTS CLONE_NEWUTS 主机名或域名
IPC CLONE_NEWIPC 信号量、消息队列和共享内存
PID CLONE_NEWPID 进程编号
Network CLONE_NETWORK 网络设备、网络端口等
Mount CLONE_NEWNS 挂载点(文件系统)
User CLONE_NEWUSER 用户组和用户

Docker安装

1.配置宿主机网卡转发

##查看是否开启宿主机网卡转发功能
[root@docker ~]# sysctl -a | grep -w net.ipv4.ip_forward
   net.ipv4.ip_forward = 0     #查询出来的结果为0,说明此宿主机没有开启网卡转发功能

#开启宿主机网卡转发功能
[root@docker ~]# cat > /etc/sysctl.d/docker.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

1586854976743

2.添加docker源

[root@docker ~]# curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@docker ~]# curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@docker ~]# yum clean all && yum makecache

3.查看源中可用版本

[root@docker ~]# yum list docker-ce --showduplicates | sort -r

1586855357708

4.安装指定版本或最新版的Docker

#安装指定版本的Docker
[root@docker ~]# yum -y install docker-ce-18.09.9

#安装最新版本的Docker
[root@docker ~]# yum -y install docker-ce

1586855404483

5.配置源加速

![1586856304696](https://img2020.cnblogs.com/blog/1178971/202004/1178971-20200414181126714-1463780489.png)#创建Docker目录
[root@docker ~]# mkdir -p /etc/docker

#配置源加速
[root@docker ~]# cat > /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
         "max-size": "100m"
    },
    "insecure-registries": ["https://hub.mfyxw.com"],  #非安全的仓库可以在insecure-registries中添加
    "registry-mirrors": ["https://jltw059v.mirror.aliyuncs.com"]
}
EOF

1586856287956

6.设置开机自启并立即启动服务

[root@docker ~]# systemctl enable --now docker

1586858894526

7.查看docker信息

[root@docker ~]# docker info

1586858948914

posted on 2020-04-14 18:13  杨枫哥  阅读(173)  评论(0编辑  收藏  举报