container
容器的实质是进程,容器进程运行于自己的独立的命名空间。
容器拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。
容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。
容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者 绑定宿主目录
参数
-t选项让 Docker 分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。-d后台运行。(容器运行时间与 -d 无关)
容器运行时间与 -d 无关,比如
sh
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"虽然是后台运行,但是运行玩就结束了
02
启动容器有两种方式,
- 基于镜像新建一个容器并启动
- 将在终止状态(exited)的容器重新启动
命令
sh
# 新建并运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 重新启动
docker container start [container ID or NAMES]
docker container stop [container ID or NAMES]
# 删除
docker container rm
docker container ls -a
docker container ps
docker container logs [container ID or NAMES]
# 进入容器查看信息
docker attach [container ID]
docker exec -it [container ID] bash
# 倒入导出
docker export 7691a814370e > ubuntu.tar
cat ubuntu.tar | docker import - test/ubuntu:v1.0
docker import http://example.com/exampleimage.tgz example/imagerepoattach 的 exit 会导致容器的停止,而 docker exec 不会