进入容器伪终端:docker exec -it 容器名 sh

几个镜像就干几个活,一定要小而巧

不是“镜像跑在容器里面”,而是“容器是镜像跑起来之后的实体

使用tar包下载镜像的这种方式就要docker load -i

底层到底发生了什么?

  1. 镜像(Image)

    • 它就是磁盘上一堆只读文件层(Read-Only Layers)打包成的模板。

    • 它自己不能“跑”,它就静静躺在 /var/lib/docker/ 磁盘里。

  2. 容器(Container)

    • 当你执行 docker run 时,Docker 引擎拿出这个镜像(模具);

    • 在镜像最顶层盖上一个可读写层(Container Read-Write Layer);

    • 然后调用 Linux 内核的 Namespace(隔离环境) 和 Cgroups(限制资源),启动镜像里定义的主进程。

    • 这个带着读写层、跑着进程、拥有独立网络和文件系统的运行环境,就叫容器。

一句话总结

  • 你拿同一个镜像,可以同时启动 10 个互不干扰的容器。

  • 所以正确的说法是:“基于镜像运行容器”,或者“容器跑在宿主机上,它的骨架和内容来自镜像”。

利用docker镜像部署mysql

容器传递环境变量

容器的启动和停止

容器本质上对应是的是宿主机上的一个进程id

镜像的持久化挂载(这个需要多看一下):将宿主机的某个目录直接挂载到容器里面,删除容器的时候能确保字更改过的内容不会丢失