关于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命令为容器文件系统创建了一个进程隔离空间。每一个容器只能够有一个进程隔离空间。

扫描二维码关注公众号,回复: 358716 查看本文章

可以利用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 createdocker 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容器的一些操作命令,还有其他的命令打算下次学习

猜你喜欢

转载自blog.csdn.net/qq_39629343/article/details/80171318