开局一张图
![75696e688b90205c9c4d92f5cbf22441.png](https://i-blog.csdnimg.cn/blog_migrate/ea0c724e58224710f8a0b305a2ed1496.jpeg)
docker的启动流程
简单明了的说明了docker的启动流程,喜欢的记得收藏啊!
接下来我们来对比一下docker和传统的虚拟机的对比,来一张图会比较清晰
![2f3ce6bba4737b31dca1dfc8ceed9683.png](https://i-blog.csdnimg.cn/blog_migrate/acc58e17085a0f619f0f364bd9c6aab8.jpeg)
docker和虚拟机的对比图
这次是在centos7下面进行的讲解
1、下载一个安装docker的文件,然后sh 文件安装
wget -qo- https://get.docker.com/ | sh
2、开启docker
/bin/systemctl start docker.service
3、搜索应用镜像
docker search nginx==镜像名称
4、下载镜像
docker pull linuxserver/nginx==镜像名称
![b211dafea175fa04843e9564d28d2c25.png](https://i-blog.csdnimg.cn/blog_migrate/5626f40662f0714c5c4e4f19c96051a3.jpeg)
5、端口映射
![289529629e7b1144a113871481f071e8.png](https://i-blog.csdnimg.cn/blog_migrate/f5d0b2a2f22b55184d937d81170fb028.jpeg)
6、
![e10e1e3b07210440b5fa44e3a70240a9.png](https://i-blog.csdnimg.cn/blog_migrate/4cf6001ae86c1fa31f25180584b0f3ca.jpeg)
![6d2d6c8597ee3f2bcd94dbbd991eafda.png](https://i-blog.csdnimg.cn/blog_migrate/bc00a5e40815c9dad110c69f7223d855.jpeg)
7、启动一个nginx的容器,--name是当前容器的名称
![554e8c208c1318a96921a7970b123767.png](https://i-blog.csdnimg.cn/blog_migrate/97831217bd471a97d2a8b149bee576b9.jpeg)
上面那个nginx改成centos
指定挂载在哪个目录下面,-v是指定挂载的目录
![c010d3a4eea2d8c3ad4406633119902d.png](https://i-blog.csdnimg.cn/blog_migrate/32260cffea87c93d62cd06f13cd3d70a.jpeg)
8、修改启动配置文件,达到启动linux然后就启动nginx
首先修改这个文件,在里面加上启动nginx的命令,比如 /usr/local/sbin/nginx
![85b35812966e9474ef1e92388a26fb8c.png](https://i-blog.csdnimg.cn/blog_migrate/3dd4effd72abdb2174db878f0fa57112.jpeg)
然后再nginx.conf 的最顶部添加上这个
![ba21425bbc8f65955c680f2d5b85d2ce.png](https://i-blog.csdnimg.cn/blog_migrate/c54490ce8e000d9ef88032d5c1e08117.jpeg)
9、提交镜像
![58a232e353c9daff6fde539919f0cd66.png](https://i-blog.csdnimg.cn/blog_migrate/dda84571332f3743661f4f1a5838c058.jpeg)
启动镜像
![9ccf09a2ec08c632662ae5dc63a7d415.png](https://i-blog.csdnimg.cn/blog_migrate/d82b52f4a86d81a96e17676d8d1d4bb0.jpeg)
/usr/local/sbin/nginx 接上面
10、使用dockerfile创建一个镜像
![404c7e6a880a57eb6cf2666b67860c1d.png](https://i-blog.csdnimg.cn/blog_migrate/f15e107922f081beea1257d952acabd6.jpeg)
之后再目录下运行这个
![d9e36197801e9bd48342d881d80e66f3.png](https://i-blog.csdnimg.cn/blog_migrate/cc3213b287e5eeab309c99225e4d8238.jpeg)
11、镜像名词解释,以及下载注意事项
![c366339ea8990c4be4636a6b31eeebe6.png](https://i-blog.csdnimg.cn/blog_migrate/f0893a007bfb4dfba407a0781b30f39f.jpeg)
(1)docker images -a 或者 docker images -qa 列出所有的镜像-q只显示id
12、创建一个centos然后进入这个虚拟的centos
-i是要交互的意思 -t是有一个交互终端的意思
docker run -it 容器的id
验证是否成功,我们需要在你原先的linux命令行窗口下面,执行docker ps 查看容器的进程
我们可以加下面的一些参数,比如docker ps -a
![14481db870e7328e04b104cd544c023c.png](https://i-blog.csdnimg.cn/blog_migrate/d9b9caa3a248ff339243991f2788b21b.jpeg)
![7727e0f8a02bf8e49a8cf76443afe33b.png](https://i-blog.csdnimg.cn/blog_migrate/dc72f292973158d27d1d69cc2fff01ce.jpeg)
我们退出容器的两种方式
![941847605f3561a63d51fed64628c71e.png](https://i-blog.csdnimg.cn/blog_migrate/43ea4c84cfc64663055a8cc482e3000b.jpeg)
删除多个容器
![139a5ef010a79112c858f5ee5b5deb56.png](https://i-blog.csdnimg.cn/blog_migrate/3492f795d85c01f75a1d7171318bb964.jpeg)
13、docker 守护进程启动的方式
![c86a8a6076cf0d342de73715533721f6.png](https://i-blog.csdnimg.cn/blog_migrate/5e87a704c5e30ff911ff30dbdef6c713.jpeg)
![db06c7baad62a5f7d829442ff9848459.png](https://i-blog.csdnimg.cn/blog_migrate/330c0e3ece23b5dc9d2a76bc5a0d0d5b.jpeg)
如果你不想在容器内部,你还想退出来,那么你就写一个脚本循环输出,保持交互
![35ff30bb6ed60b8c9b93ea7b73abf264.png](https://i-blog.csdnimg.cn/blog_migrate/2c1c02ee2f58b8f20dc8300622fa65d2.jpeg)
14、当我们以守护进程启动一个容器的时候,我们想再一次进入的话,我们需要这样执行
(1)docker exec -it f2095f5b5360 /bin/bash
(2)docker attach f2095f5b5360
![070f296790503e8bd5c13f6e89f06805.png](https://i-blog.csdnimg.cn/blog_migrate/46e72f48812e690c1ad8efa555c034d9.jpeg)
15、拷贝docker里面的文件到你需要的地方
![4186001bd59a636d1f0692cef05746c2.png](https://i-blog.csdnimg.cn/blog_migrate/3463fbd11b813174f3a3ae4972d7fe4f.jpeg)
16、docker出来的镜像和原主机数据交互备份,主机和docker虚拟主机之间的数据共享
![577d18d9a3ed194b49c955688f6412e8.png](https://i-blog.csdnimg.cn/blog_migrate/74f3476ec2467a9e00761186adf9cb51.jpeg)
加了ro就是只能读,不能写,也就是两者能够同步数据,但是虚拟主机不能修改主机同步过来的数据
![4aa53401c061479caed5dda0ee60b6a1.png](https://i-blog.csdnimg.cn/blog_migrate/ee7d9f5451f6248c11347ab18ae25028.jpeg)
应用场景,比如我在主机上面已经上传了代码,然后我用docker直接同步到虚拟主机上面,然后就可以直接访问