docker 学习笔记——常用指令汇总

0x00 intro.

container(容器)

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。

images(镜像)

Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

举个例子,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。Docker 镜像(Image)相当于是一个 root 文件系统。

比如官方镜像 ubuntu:14.04 就包含了完整的一套 Ubuntu 14.04 最小系统的 root 文件系统。

0x01 container和Image的联系

image是镜像,类似于我们装系统的.iso文件。

container则是我们装系统这个过程所产生的实例,他是动态的。

Docker的Jerome这样说:

Image和Container是一对n的关系。

An image is read only. It is like a template, a model.
From the image, you can create one or many containers. The containers are read write.
Another analogy: the image is like a blueprint, and the container is the execution of the blueprint.

0x02 container和Image的简单操作

操作docker

1. 查看容器:

docker ps -as —可以查看包括Name.ID.Image.Command.创建时间.上次启动时间.窗口映射情况在内的信息

2. 启动容器:

  • 新建并启动:docker run
  • 启动已存在的容器并进入它的终端:
1
2
docker start <id>
docker attach <id>

3. 后台运行:docker run -d

docker在后台运行,不直接把执行命令的结果输出到宿主机上。

  • 获取容器数据:docker logs

4. 终止容器:docker stop

  • 处于终止态,要重新启动:docker start
  • 处于运行态,要重新启动:docker restart

5. 删除容器:docker rm

  • 删除容器时需要先终止容器,否则会报错。
  • 删除全部容器:docker rm $(docker ps -a -q) —会删除所有已终止的容器。

操作image:

1.查看全部images:docker images

2.删除images:

  • 通过指定image的ID来删除:docker rmi <image id>
  • 删除全部image: docker rmi $(docker images -q)

<未完待续>

0x06 参考文章:

1.Docker的image和container是什么关系?