什么是Docker
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。
容器是完全使用沙箱机制,相互之间不会有任何的接口
什么是Image
Image是一个轻量级、独立、可执行的软件包,其中包含了应用程序所需要的全部内容,包括:classes、运行时间、系统工具、系统类库和配置等。
什么是Container
Container是一个通过打包好的Image建立的一个标准的运行单元,其中存储了系统运行时创建的类等。Container决定了程序的运行快慢以及对于系统环境的依赖性。
Docker 的网络机制
重点:
docker每次启动都会在宿主机内创建一个网段,然后在该网段内为各种容器和当前宿主机提供一个ip地址
输入如下命令,查看docker的网桥情况:
$ docker network ls
$ docker inspect bridge
我们可以看到docker创建一个172.18.0.0的网段,然后分别给web、tomcat、mysql分配了一个ip地址
并且也给当前宿主机分配了一个网关ip地址(172.18.0.1)
$ ifconfig
而docker分配的这个地址,只能在宿主机中和docker容器中进行访问,在宿主机之外的电脑上是无法ping通的
Docker的优势和应用场景
- 有助于MicroServices的落地和部署
- 充分利用物理机资源,同时能够整合服务器资源
- 提高开发效率,测试效率,部署效率,有利于DevOps的落地,CICD
- 云原生落地,应用更好地迁移
…
Hello World
1.拉取hello-world
$ docker pull hello-world
2.查看是否拉取成功
$ docker images | grep hello
3.根据镜像创建并启动容器
$ docker run --name my-hello-world hello-world
docker容器启动完毕!