容器
启动容器
启动一个容器的语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用 OPTIONS 说明:
常用:
-d
: 后台运行容器,并返回容器ID;
-i
: 以交互模式运行容器,通常与 -t 同时使用;
-t
: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P
: 随机端口映射,容器内部端口随机映射到主机的高端口
-p
: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name "xxx"
: 为容器指定一个名称;
-h "xxx"
: 指定容器的hostname(主机名)。等同于 --hostname
;
不常用:
-a stdin
: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
--dns 8.8.8.8
: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com
: 指定容器DNS搜索域名,默认和宿主一致;
-e username "xxx"
: 设置环境变量;
--env-file=[]
: 从指定文件读入环境变量;
--cpuset "0-2" or --cpuset "0,1,2"
: 绑定容器到指定CPU运行;
-m
:设置容器使用内存最大值;
--net "bridge"
: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link []
: 添加链接到另一个容器;
--expose []
: 开放一个端口或一组端口;
--volume , -v
: 绑定一个卷
操作容器
docker ps
查看正在运行的容器
docker start xxx
:启动一个或多个已经被停止的容器
docker stop xxx
:停止一个或多个运行中的容器
docker restart xxx
:重启一个或多个容器
查看容器
默认只列出正在运行的
docker ps [OPTIONS]
OPTIONS 说明:
常用:
-a
:显示所有的容器,包括未运行的。
-q
:静默模式,只显示容器编号。
不常用:
-f
:根据条件过滤显示的内容。
--format
:指定返回值的模板文件。
-l
:显示最近创建的容器。
-n
:列出最近创建的n个容器。
--no-trunc
:不截断输出。
-s
:显示总的文件大小。
docker top xxx
:查看容器中运行的进程信息,支持 ps 命令参数。
进入容器
方法一:
docker attach [OPTIONS] CONTAINER
:连接到正在运行中的容器。
OPTIONS 说明:
--sig-proxy=false
:CTRL-D或CTRL-C不会关闭容器
方法二:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS 说明:
-d
:分离模式: 在后台运行
-i
:即使没有附加也保持STDIN 打开
-t
:分配一个伪终端
删除容器
删除一个或多少容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS 说明:
-f
:通过SIGKILL信号强制删除一个运行中的容器
-l
:移除容器间的网络连接,而非容器本身
-v
:删除与容器关联的卷
镜像
查看镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS 说明:
-a
:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
-q
:只显示镜像ID。
--digests
:显示镜像的摘要信息;
-f
:显示满足条件的镜像;
--format
:指定返回值的模板文件;
--no-trunc
:显示完整的镜像信息;
拉取镜像
从镜像仓库中拉取或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS 说明:
-a
:拉取所有 tagged 镜像
--disable-content-trust
:忽略镜像的校验,默认开启
查找镜像
docker search [OPTIONS] TERM
OPTIONS 说明:
--automated
:只列出 automated build类型的镜像;
--no-trunc
:显示完整的镜像描述;
-s
:列出收藏数不小于指定值的镜像。
构建镜像
使用 Dockerfile 创建镜像。
docker build [OPTIONS] PATH | URL | -
OPTIONS 说明:
常用:
--tag, -t
: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
不常用:
--build-arg=[]
:设置镜像创建时的变量;
--cpu-shares
:设置 cpu 使用权重;
--cpu-period
:限制 CPU CFS周期;
--cpu-quota
:限制 CPU CFS配额;
--cpuset-cpus
:指定使用的CPU id;
--cpuset-mems
:指定使用的内存 id;
--disable-content-trust
:忽略校验,默认开启;
-f
:指定要使用的Dockerfile路径;
--force-rm
:设置镜像过程中删除中间容器;
--isolation
:使用容器隔离技术;
--label=[]
:设置镜像使用的元数据;
-m
:设置内存最大值;
--memory-swap
:设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache
:创建镜像的过程不使用缓存;
--pull
:尝试去更新镜像的新版本;
--quiet, -q
:安静模式,成功后只输出镜像 ID;
--rm
:设置镜像成功后删除中间容器;
--shm-size
:设置/dev/shm的大小,默认值是64M;
--ulimit
:Ulimit配置。
--network
: 默认 default。在构建期间设置RUN指令的网络模式
容器间网络
容器间网络配置在容器启动的时候配置
查看容器端口
docker port xxx