官方网址: https://www.docker.com/
一、什么是docker
1、Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。
2、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
3、容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
4、Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
二、传统虚拟化与容器技术对比
三、docker容器的优势
1、将应用程序与基础架构分开,从而可以快速交付软件。
2、可以用与管理应用程序相同的方式来管理基础架构。
3、快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。
四、docker 架构
Docker 包括三个基本概念:
1、镜像(Image)
Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
2、容器(Container)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
3、仓库(Repository)
仓库可看成一个代码控制中心,用来保存镜像。
五、安装docker
1、配置软件仓库
vim /etc/yum.repos.d/docker.repo
[docker]
name=docker-ce
baseurl=http://172.25.36.250/docker/docker-ce
gpgcheck=0
2、安装docker
yum install -y docker-ce
systemctl enable --now docker.service
ip addr show docker0 ##查看docke ip
3、查看docker信息,可能会出现警告(不出现也需要查看一下桥接的状态)
docker info
sysctl -a | grep bridge-nf-call-iptables ##查看桥接状态
vim /etc/sysctl.d/docker.conf ##修改桥接状态
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
sysctl --system ##内核重新加载
docker info ##再次查看没有警告
六、docker的简单使用
1、导入下载好的镜像
docker load -i game2048.tar
2、运行容器
docker images ##查看容器列表
docker run -d --name demo -p 80:80 game2048 ##运行容器
docker ps ##查看docker进程
网页访问172.25.36.1
3、删除容器
docker rm -f demo
4、重新导入新的镜像,再运行容器
docker load -i mario.tar
docker images
docker run -d --name demo -p 80:8080 mario
网页访问172.25.36.1
5、删除镜像
docker rm -f demo
docker ps
docker rmi game2048:latest ##删除镜像
docker rmi mario:latest
docker images