淘先锋技术网

首页 1 2 3 4 5 6 7

目录

一、Docker介绍

1、组成

2、工作原理

 3、与虚拟机的区别

二、RedHat下安装

1、资源链接

2、真机部署

        (1)资源配置

        (2)设置开机自启

        (3)镜像测试


一、Docker介绍

        Docker ,我们常说的dockers实际上是一个开源的应用容器引擎,是让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的OS(Linux+windows)上,同时也可以实现虚拟化。不同镜像之间相互独立,也不设立接口。

1、组成

        一个完整的Docker有以下几个部分组成:DockerClient客户端、Docker Daemon守护进程、Docker Image镜像、DockerContainer容器。

2、工作原理

        Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API进行管理。Docker 容器通可以通过过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

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

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

图 1 dockers工作原理

 3、与虚拟机的区别

        很多时候,当我们在初次接触docker时,更多的是将其类比于虚拟机,在上进行操作 ,这种认知是没有问题的,但是docker和虚拟机真的完全一样吗?其实不然,两者之间依然存在一定的区别。

虚拟机docker
操作系统宿主机上运行虚拟OS共享宿主机OS
存储镜像较大镜像小
性能消耗操作系统的额外CPU和内存几乎无性能损耗
移植性笨重,与虚拟化技术耦合度高轻量、灵活迁移
隔离性完全隔离安全隔离
部署速度慢、分钟级别快速、妙级
运行密度一般为几十个单机支持上千容器

二、RedHat下安装

1、资源链接

        首先我们要明确,如果我们在一台宿主机上进行部署,我们需要安装的资源包有哪些:docker-ce.x86、 docker-ce-cli.x86_64、 containerd.io.x86、container-selinux.noarch同时涉及到相关的依赖性。

        (1)阿里镜像源:http://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/

        (2)官网源:https://docs.docker.com/

2、真机部署

        我们这里直接采用线上部署,不需要下载安装包到本机,然后逐一安装,只需要进行yum源配置即可。

        (1)资源配置

##配置yum源
[root@server1 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo    //依赖性额源
[root@server1 ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo    //非阿里用户配置
[root@server1 ~]# vim /etc/yum.repos.d/docker.repo    //配置docker源

##doceker源的配置文件
[docker]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0
enable=1


##安装软件包
[root@server1 ~]# yum install -y docker-ce


##问题处理
##1 安装过程中,yum源出现错误:(因为没有redhat的版本,所以我们采用的Centos的软件包去解决的依赖性,所以需要更改版本问题)
##解决:%s/$servive/7/g
图 2 docker的安装

        (2)设置开机自启

[root@server1 ~]# systemctl enalbe --now docker     //开机自启

[root@server1 ~]# vim /etc/sysctl.d/docker.conf     //配置内核文件

##内容:
net.bridge-nf-call-iptables = 1            ##使用桥接模式,进行网络设置
net.bridge-nf-call-ip6tables = 1

[root@server1 ~]# sysctl --syste                    //内核设置
图 3 docker的启动

图4 启动后产生ip

        (3)镜像测试

##查看信息
[root@server1 ~]# docker info

##在官网上查找镜像
[root@server1 ~]# docker search yakexi007

##获取指定的镜像文件(网上获取)
[root@server1 ~]# docker pull yakexi007/mario

##获取指定镜像文件(本地获取)
[root@server1 ~]# docker load -i mario.tar

##查看所存在的镜像
[root@server1 ~]# docker images 

##启动指定的镜像
[root@server1 ~]# docker run -d --name demo -p 80:8080 yakexi007/mario
                //-d 打入后台运行; --name 指定运行名称  -p 进行端口映射 映射的端口:使用的端口


##查看运行的镜像文件
[root@server1 ~]# docker ps -a

##结束运行的镜像
[root@server1 ~]# docker rm -f demo



图 5  查找并下载镜像

图 6 镜像启动

图 7 测试页面

图 8 关闭镜像后,刷新测试页

本文涉及一些常见知识,参考来源百度文献。