目录
一、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 交互。
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)设置开机自启
[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)镜像测试
##查看信息
[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
本文涉及一些常见知识,参考来源百度文献。