容器常用命令

by admin on 2019年8月12日

文/Anoyi

原文:http://www.itmuch.com/docker/05-docker-command-containers/

为了越来越好的知道什么保管 Docker Swarm 下服务的互联网,本文先介绍 Docker
互联网的底子操作。

本节我们来谈谈Docker容器的常用命令。

► 创制网络

https://docs.docker.com/engine/reference/commandline/network\_create/

用法

docker network create [参数] NETWORK

可选参数

简写 参数 默认值 描述
–attachable 允许人工添加容器到此网络
–aux-address 网络驱动程序使用的辅助的 IPv4 或 IPv6 地址
–config-from 从配置文件中的网络配置
–config-only 仅配置文件有效
-d –driver bridge 网络驱动(bridge、overlay)
–gateway 主子网的 IPv4 或 IPv6 网关
–ingress 创建 Swarm ​​路由网状网络
–internal 限制对网络的外部访问
–ip-range 容器可分配的IP范围
–ipam-driver IP地址驱动
–ipam-opt 设置 IPAM 驱动的指定参数
–ipv6 允许 IPv6
–label 设置元数据
-o –opt 设置驱动的指定参数
–scope 控制网络的范围
–subnet 以 CIDR 格式表示网段的子网

示例
创制三个网络

docker network create -d overlay \
  --attachable \
  --subnet=192.168.0.0/16 \
  --gateway=192.168.0.100 \
  --aux-address="anoyi=192.168.1.5" \
  user_network

新建并运维容器[重要]

运用以下docker run亚洲必赢手机入口,
命令就能够新建并运转一个容器。该命令是大家最常用的吩咐了,它有大多精选,下边小编列举部分常用的选项。

① -d摘取:表示后台运维

② -P选项:随机端口映射

③ -p选项:内定端口映射,有以下二种格式。

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

④ –network选项:钦命互联网方式,该选取有以下可选参数:

–network=bridge: 暗许选项,表示连接到暗中同意的网桥。

–network=host:容器使用宿主机的网络。

–network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络布置。

–network=none:不布署该容器的网络,用户可自定义网络布局。

示例1:

docker run java /bin/echo 'Hello World'

那般终端会打字与印刷Hello
World的字样,跟在地面一贯实践/bin/echo 'Hello World' 一样。

示例2:

docker run -d -p 91:80 nginx

如此那般就会运营三个Nginx容器。在本例中,我们为docker
run增加了五个参数,含义如下:

-d                           # 后台运行
-p 宿主机端口:容器端口         # 开放容器端口到宿主机端口

访问http://Docker宿主机IP:91/
,将会看出如图12-3的分界面:

亚洲必赢手机入口 1

12-3.png

图12-3 Nginx首页

TIPS

内需注意的是,使用docker
run命令创设容器时,会先反省本地是或不是存在钦定镜像。如若本地不设有该名称的镜像,Docker就能够自动从Docker
Hub下载镜像并运行一个Docker容器。

► 互连网列表

https://docs.docker.com/engine/reference/commandline/network\_ls/

用法

docker network ls [参数]

可选参数

简写 参数 默认值 描述
-f –filter 过滤 (例 ‘driver=bridge’)
–format 格式转化
–no-trunc 不要截断输出
-q –quiet 仅显示网络ID

示例

user_network 即为地点创设的互连网

列出容器[重要]

使用docker ps
命令就能够列出运营中的容器。施行该命令后,可看到类似于如下的表格。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
784fd3b294d7        nginx               "nginx -g 'daemon off"   20 minutes ago      Up 2 seconds        443/tcp, 0.0.0.0:91->80/tcp   backstabbing_archimedes

如需列出装有容器(包涵已告一段落的容器),可采用-a参数。

该表格满含了七列,含义如下:

① CONTAINER_ID:表示容器ID。

② IMAGE:表示镜像名称。

③ COMMAND:表示运营容器时运营的授命。

④ CREATED:表示容器的创始时间。

⑤ STATUS:表示容器运维的景况。Up代表运行中,Exited代表已告一段落。

⑥ PORTS:表示容器对外的端口号。

⑦ NAMES:表示容器名称。该名称暗中认可由Docker自动生成,也可应用docker
run命令的–name选项自行钦点。

一声令下格式:

docker ps [OPTIONS]

参数:

Name, shorthand Default Description
--all, -a false 列出所有容器,包括未运行的容器,默认只展示运行的容器
--filter, -f 根据条件过滤显示内容
--format 通过Go语言模板文件展示镜像
--last, -n -1 显示最近创建n个容器(包含所有状态)
--latest, -l false 显示最近创建的容器(包含所有状态)
--no-trunc false 不截断输出
--quiet, -q false 静默模式,只展示容器的编号
--size, -s false 显示总文件大小

示例:

docker ps -n 5
docker ps -a -q

► 互连网详细的情况

https://docs.docker.com/engine/reference/commandline/network\_inspect/

用法

docker network inspect [参数] NETWORK [NETWORK...]

可选参数

简写 参数 默认值 描述
-f –format 格式转化
-v –verbose 详细输出用于诊断

示例

docker network inspect user_network

终止容器[重要]

使用docker stop 命令,就可以结束容器。

指令格式:

docker stop [OPTIONS] CONTAINER [CONTAINER...]

参数:

Name, shorthand Default Description
--time, -t 10 强制杀死容器前等待的时间,单位是秒

示例:

docker stop 784fd3b294d7

其中784fd3b294d7 是容器ID,当然也可采纳docker stop 容器名称
来结束钦点容器。

► 容器连接网络

用法

docker network connect [参数] NETWORK CONTAINER

可选参数

简写 参数 默认值 描述
–alias 为容器添加网络别名
–ip IPv4 地址 (如 172.30.100.104)
–ip6 IPv6 地址 (如 2001:db8::33)
–link 连接到其他容器
–link-local-ip 容器连接到本地地址

示例

1、运营贰个 Nginx 容器

docker run -d --name nginx nginx

2、将 nginx 容器连接到 user_network 网络

docker network connect user_network nginx

3、查看 nginx 容器详细情形

docker inspect nginx

强制甘休容器[重要]

可使用docker kill 命令甘休四个或越多运维着的器皿。

命令格式:

docker kill [OPTIONS] CONTAINER [CONTAINER...]

参数:

Name, shorthand Default Description
--signal, -s KILL 向容器发送一个信号

例如:

docker kill 784fd3b294d7

► 容器断开互连网

用法

docker network disconnect [参数] NETWORK CONTAINER

可选参数

简写 参数 默认值 描述
-f –force 强制容器与网络断开连接

示例

断开 nginx 容器与 user_network 互连网的连天

docker network disconnect -f user_network nginx

起头已告一段落的容器[重要]

使用docker run
命令,就能够新建并运营四个器皿。对于已偃旗息鼓的器皿,可应用docker start
命令来运营。

一声令下格式:

docker start [OPTIONS] CONTAINER [CONTAINER...]

参数:

Name, shorthand Default Description
--attach, -a false 连接STDOUT/STDERR并转发信号
--checkpoint 从该检查点还原
--checkpoint-dir 使用自定义的检查点存储目录
--detach-keys 覆盖断开容器的关键顺序
--interactive, -i false 连接容器的STDIN

例如:

docker start 784fd3b294d7

► 删除网络

除去钦点网络

docker network rm NETWORK [NETWORK...]

批量删减无用互连网

docker network prune [参数]

可选参数

简写 参数 默认值 描述
–filter 过滤 (如 ‘until=’)
-f –force 强制容器与网络断开连接

重启容器[重要]

可使用docker restart
命令来重启容器。该命令实际上是先推行了docker stop
命令,然后实践了docker start 命令。

指令格式:

docker restart [OPTIONS] CONTAINER [CONTAINER...]

参数:

Name, shorthand Default Description
--time, -t 10 关闭容器前等待的时间,单位是秒

步入容器[重要]

某场景下,大家或许须要步向运维中的容器。

① 使用docker attach 命令步向容器。

例如:

docker attach 784fd3b294d7

数不清场所下,使用docker attach
命令并不便利。当多少个窗口同期attach到同三个器皿时,全体窗口都会同步展现。同理,假使某些窗口发生围堵,别的窗口也不能实践操作。

② 使用nsenter 步向容器

nsenter工具包罗在util-linux
2.23或更加高版本中。为了连接到容器,大家要求找到容器第叁个经过的PID,可通过以下命令获取:

docker inspect --format "{{.State.Pid}}" $CONTAINER_ID

得到PID后,就可应用nsenter命令踏向容器了:

nsenter --target "$PID" --mount --uts --ipc --net --pid

下边给出二个完好无缺的例子:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
784fd3b294d7        nginx               "nginx -g 'daemon off"   55 minutes ago      Up 3 minutes        443/tcp, 0.0.0.0:91->80/tcp   backstabbing_archimedes
[root@localhost ~]# docker inspect --format "{{.State.Pid}}" 784fd3b294d7
95492
[root@localhost ~]# nsenter --target 95492 --mount --uts --ipc --net --pid
root@784fd3b294d7:/# 

读者也可将上述两条命令封装成贰个Shell,进而简化步入容器的历程。

③ docker exec

docker exec -it 容器id /bin/bash

删除容器[重要]

使用docker rm 命令就可以删除内定容器。

指令格式

docker rm [OPTIONS] CONTAINER [CONTAINER...]

参数:

Name, shorthand Default Description
--force, -f false 通过SIGKILL信号强制删除正在运行中的容器
--link, -l false 删除容器间的网络连接
--volumes, -v false 删除与容器关联的卷

例1:删除钦点容器。

docker rm 784fd3b294d7

该命令只好删除已甘休的器皿,如需删除正在运维的容器,可采纳-f参数。

例2:删除全体的器皿。

docker rm -f $(docker ps -a -q)

导出容器

将容器导出成二个压缩包文件。

命令格式:

docker export [OPTIONS] CONTAINER

参数:

Name, shorthand Default Description
--output, -o 将内容写到文件而非STDOUT

示例:

docker export red_panda > latest.tar
docker export --output="latest.tar" red_panda

导入容器

使用docker import 命令就能够从归档文件导入内容并创制镜像。

命令格式:

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

参数:

Name, shorthand Default Description
--change, -c 将Dockerfile指令应用到创建的镜像
--message, -m 为导入的镜像设置提交信息

示例:

docker import nginx2.tar nginx

进展阅读

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图