一、什么是docker
- Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
- docker好比传统的货运集装箱
- docker为应用打包、部署平台,而非单纯的虚拟化技术
- docker只是一个容器引擎,生产环境用编排服务(k8s 微服务)
- docker是C/S结构
- 与虚拟机相比
容器:
直接共享宿主机,资源占用更小,几乎无性能损耗,可移植性高,轻量、灵活迁移。部署更快速,运行密度:单机支持上千容器。
可以理解为操作系统的一个进程
虚拟机:
什么都不干就会有50M的内存开销,操作系统额外的cpu、内存消耗。笨重、与虚拟化技术耦合度高
docker-ce:社区版
docker-ee:商务版
对于开发人员:build once,run anywhere(一次构建,可以在任何地方运行)
对于运维人员:configure once,run anything(一次配置,可以运行所有东西)
开发,运维与线上环境不同,docker可以解决相互沟通问题
二、安装容器
1.使虚拟机可以上网
[root@foundation4 ~]# iptables -t nat -I POSTROUTING -s 172.25.4.0/24 -j MASQUERADE
2.配置docker-ce yum源
[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# ls
dvd.repo redhat.repo
[root@server1 yum.repos.d]# vim docker-ce.repo
[root@server1 yum.repos.d]# cat docker-ce.repo
[docker]
name=docker ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0
[root@server1 yum.repos.d]# yum repolist
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
docker | 3.5 kB 00:00:00
(1/2): docker/primary_db | 45 kB 00:00:00
(2/2): docker/updateinfo | 55 B 00:00:00
repo id repo name status
docker docker ce 79
dvd rhel7.6 5,152
repolist: 5,231
[root@server1 ~]# vim /etc/yum.conf
keepcache=1
3.安装docker并开启服务
[root@server1 yum.repos.d]# cd
[root@server1 ~]# ls
containerd.io-1.2.13-3.2.el7.x86_64.rpm docker-ce-19.03.12-3.el7.x86_64.rpm
container-selinux-2.77-1.el7.