关于Docker容器操作的一些常用命令
Docker容器的使用
容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
Docker 客户端
使用docker
查看到 Docker 客户端的所有命令选项
可以通过命令 docker command --help
更深入的了解指定的 Docker 命令使用方法
启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器 重新启动。
docker create
docker create 5149fe9d8891
docker create
命令为指定的镜像(image)添加了一个可读写层,构成了一个新的容器,这个容器并没有运行。
docker start
docker start 64372e458a12d0ceb7c199eaf401cae679d2955c18acdea35ed782548be77c3e
docker start
命令为容器文件系统创建了一个进程隔离空间。每一个容器只能够有一个进程隔离空间。
可以利用docker start
命令,直接将一个已经终止的容器启动运行
docker run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
docker run peithon/ubuntu:v2 /bin/bash
启动一个bash终端,允许用户进行交互
docker run
命令先是利用镜像创建了一个容器,然后运行这个容器,隐藏了docker create
和docker start
这两个命令的实现细节
查看容器
docker ps [OPTIONS]
docker ps –a命令会列出所有的容器,不管是运行的,还是停止的。
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
进入容器
在使用-d参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使用docker attach命令
或nsenter工具
等。
docker attach
使用 attach命令有时候并不方便。当多个窗口同时 attach到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。
这时我们可以利用nsenter工具来对容器进行操作
暂停和恢复容器进程
docker pause
暂停容器中所有的进程
docker unpause
恢复容器中所有的进程
终止容器
docker stop
docker stop
命令会向运行中的容器发送一个SIGTERM的信号,然后停止所有的进程,即终止一个运行中的容器。
导出容器
docker export
将文件系统作为一个tar归档文件导出到本地文件
参数 -o : 将输入内容写到文件
将id为c74e0f07a914
的容器按日期保存为tar文件
# docker export -o mysql-`date +%Y%m%d`.tar c74e0f07a914
导入容器
docker impor
可以使用docker import
从容器快照文件中再导入为镜像
cat ubuntu.tar | docker import - peithon/ubuntu:v2
容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态)
重启容器
docker restart
这个命令会将一个运行态的容器终止,然后再重新启动它
删除容器
docker rm
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
-f :通过SIGKILL信号强制删除一个运行中的容器
-l :移除容器间的网络连接,而非容器本身
-v :-v 删除与容器关联的卷
强制删除容器22d77a08909c、5c9515d4154e
docker rm $(docker ps -q -f status=exited)
这个命令将会把所有的容器都删除掉
docker kill
docker kill [OPTIONS] CONTAINER [CONTAINER…]
杀掉一个运行中的容器
OPTIONS说明:
-s :向容器发送一个信号
这些就是关于Docker容器的一些操作命令,还有其他的命令打算下次学习
上一篇: maven的配置及一些常用命令
下一篇: Python开发时的一些常用命令