简介
docker是一个开源的应用容器引擎,使用go语言并遵循开源协议,它可以帮助我们快速的交付应用可以轻便的打包应用到容器,并且运行与任何linux机器,docker可以将应用程序和基础设施隔离,能将一个设施当做程序一样部署和管理,可以快速打包、部署、测试应用程序,减少编程到部署的时间。
![57ea8d02910af317a105779b58b5f92a.png](https://i-blog.csdnimg.cn/blog_migrate/6c5688b7d39175e7c1fe651226309df5.jpeg)
版本计划
docekr版本分为企业版(EE)和社区版(CE)
企业版(EE)
docker EE的企业版由公司支持,可在经过认证的操作系统或者云的提供商中使用,docker EE有三个服务层次
- Basic:包含用于认证基础设施的Docker平台,Docker公司的支持,经过认证的、来自Docker Store的容器与插件。
- Standard:添加高级镜像与容器管理LDAP/AD用户集成基于角色的访问控制(Docker Datacenter)
- Advanced:添加Docker安全扫描连续漏洞监控
社区版(CE)
社区版本的docker是免费的,包含了完整的docker平台,非常适合开发人员和运维团队构建自己的容器APP。docker公司推出的docker CE和docker EE为docker的生命周期和维护性带来了极大的改进
![3325a8b20aa36ef9c02c8b12af1a254a.png](https://i-blog.csdnimg.cn/blog_migrate/1b914d5aca27edf5efae57c11a144dcb.jpeg)
docker快速入门(基于centos)
- 设置docker仓库
yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置稳定仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
安装特定版本 列出后可指定安装
yum list docker-ce --showduplicates | sort -r
- 启动docker并测试是否成功
sudo systemctl start docker --启动docker
sudo service docker restart --重启
sudo docker run hello-world --测试是否成功
输出:hello-world
- 设置docker镜像加速器
1、vim /etc/docker/daemon.json
放入以下内容{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
此处为七牛加速器 或者阿里的都行 然后重启docker
2、检测是否成功 docker info
![8f626725a54acd373db58fba5cd77fa2.png](https://i-blog.csdnimg.cn/blog_migrate/09d226da1c38f609fc98aae1a85e79d0.jpeg)
- 快速启动一个容器
docker run -d -p 80:80 nginx
-d 后台运行
-p 端口映射,将宿主机和容器端口映射。
nginx 镜像,如果没有会默认从Docker Hub下载
![6ebf683497c7e75d4cfe3557ae08bfd1.png](https://i-blog.csdnimg.cn/blog_migrate/145362fe9bb211a5d0d840ee1d2c283f.jpeg)
docker架构
- Docker daemon(Docker守护进程)
Docker daemon是一个运行在宿主机(DOCKER_HOST)的后台进程。我们可通过Docker客户端与之通信。
- Client(Docker客户端)
Docker客户端是Docker的用户界面,它可以接受用户命令和配置标识,并与Docker daemon通信。图中,docker build等都是Docker的相关命令。
- 镜像(Images)
docker镜像是一个只读模板,相当于一个文件系统,或者说是系统启动盘来安装系统,同理,我们也是使用docker镜像运行docker中的程序。
- 容器(Container)
docker中的容器有点像java中类和对象的关系,要运行容器就得先有镜像,容器是镜像运行的体现,容器可以创建、启动、停止、删除、暂停等操作。
- 仓库(Repository)
仓库类似于代码控制中心,主要用来保存镜像。
- Registry
Docker Registry是一个集中存储与分发镜像的服务。我们构建完Docker镜像后,就可在当前宿主机上运行。一个Docker Registry可包含多个Docker仓库;每个仓库可包含多个镜像标签;每个标签对应一个Docker镜像,类似于几种管理构建好的docker镜像的插件包,比如maven是用来管理jar包的。
docker直接利用的是宿主机的内核,容器共享主机内核,容器里面运行的是linux的副本,没有自己的内核,直接使用的是物理机的内核。资源隔离级别:利用Linux内核本身支持的容器方式实现资源和环境隔离。
Docker官方网站:https://www.docker.com/
Docker GitHub:https://github.com/docker/docker
![4e4e06b9459ef6650829c3901bf9f2a9.png](https://i-blog.csdnimg.cn/blog_migrate/37adf604c4eaeeec2f0413fd31c46be3.jpeg)