docker
进入容器伪终端:docker exec -it 容器名 sh
几个镜像就干几个活,一定要小而巧
不是“镜像跑在容器里面”,而是“容器是镜像跑起来之后的实体
使用tar包下载镜像的这种方式就要docker load -i
底层到底发生了什么?
镜像(Image)
它就是磁盘上一堆只读文件层(Read-Only Layers)打包成的模板。
它自己不能“跑”,它就静静躺在
/var/lib/docker/磁盘里。
容器(Container)
当你执行
docker run时,Docker 引擎拿出这个镜像(模具);在镜像最顶层盖上一个可读写层(Container Read-Write Layer);
然后调用 Linux 内核的 Namespace(隔离环境) 和 Cgroups(限制资源),启动镜像里定义的主进程。
这个带着读写层、跑着进程、拥有独立网络和文件系统的运行环境,就叫容器。
一句话总结
你拿同一个镜像,可以同时启动 10 个互不干扰的容器。
所以正确的说法是:“基于镜像运行容器”,或者“容器跑在宿主机上,它的骨架和内容来自镜像”。
利用docker镜像部署mysql
容器传递环境变量
容器的启动和停止
容器本质上对应是的是宿主机上的一个进程id
镜像的持久化挂载(这个需要多看一下):将宿主机的某个目录直接挂载到容器里面,删除容器的时候能确保字更改过的内容不会丢失
评论