Docker 学习(四) 容器常用命令
2020-01-14 12:52
531 查看
文章目录
新建并启动容器
格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run 的选项可以有很多这里就不一一列举出来了。下面仅仅列举出部分常用参数:
选项 | 缩写 | 说明 |
---|---|---|
–detach | -d | 后台运行容器,并打印容器ID |
–publish-all | -P | 随机映射所有端口 |
–publish | -p | 指定 端口映射,该选项有一下四种格式: ip : hostPort : containerPort ip :: containerPort hostPort:containerPort containerPort |
–network | 指定网络模式,该选项有以下四种可选参数。 –network=bridge : 默认选项,表示连接到默认的网桥。 –network=host : 容器使用宿主机的网络。 --network=container:Name_or_ID : 告诉 Docker 让新建的容器使用已有容器的网络配置。 --network=none : 不配置该容器的网络,用户可自定义网络配置 |
|
–name | 设置容器名称,如果不指定则docker会随机指定一个容器名称 |
示例1:
docker run java /bin/echo 'Hello World'
示例2:
docker run -d --name name -p 91:80 nginx
这样就可以启动一个Nginx容器。访问
http://Docker 宿主机 IP:91/,会看到如下图所示界面:
需要注意的是,使用Docker Run 命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像,Docker 会自动从 Docker Hub 下载镜像并启动一个 Docker 容器。
列出容器
格式:
docker ps [OPTIONS]
选项 | 缩写 | 说明 |
---|---|---|
–all | -a | 列出全部容器,包括未运行的容器。默认值展示运行的容器 |
–filter | -f | 根据条件过滤显示的内容 |
–format | 通过Go语言模板文件展示镜像 | |
–last | -n | 显示最近创建的 n 个容器(包含所有状态) |
–latest | -l | 显示最近创建的容器(包含所有状态) |
–no-trunc | 不截断输出 | |
–quiet | -q | 静默模式,只展示容器的ID |
–size | -s | 显示总文件大小 |
示例:
docker ps
该命令会展示正在运行的容器,输出结果如下:
字段 | 说明 |
---|---|
CONTAINER ID | 容器ID |
IMAGE | 镜像名称 |
COMMAND | 表示启动容器时运行的命令,类似与开机启动项 |
STATUS | 容器运行的状态。Up 表示运行中,Exited 表示已停止 |
PORTS | 表示对外的端口号 |
NAMES | 容器名称。该名称默认由 Docker 自动生成,也可使用docker run命令的 -name 选择指定。 |
停止容器
格式:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
选项 | 缩写 | 描述 |
---|---|---|
–time | -t | 强行停止容器的等待时间,单位s,默认是10秒。意思是如果在10秒内不能停止容器则使用强制停止容器的命令 |
示例:
docker stop 9adde0091f5d
9adde0091f5d 是容器ID ,也可以使用
docker stop 容器名称来停止容器
强制停止容器
格式:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
选项 | 缩写 | 说明 |
---|---|---|
–signal | -s | 向容器发送一个信号,默认是“KILL” ,这里可以发送自定义内容 |
示例:
docker kill 9adde0091f5d
启动已停止的容器
docker run 是新建并启动, docker start 是启动已停止的容器。
格式:
docker start [OPTIONS] CONTAINER [CONTAINER...]
选项 | 缩写 | 说明 |
---|---|---|
–attach | -a | 连接 STDOUT/STDERR 并转发信号 |
–detach-keys | 覆盖断开容器的关键顺序 | |
–interactive | -i | 连接容器的 STDIN |
示例:
docker start 9adde0091f5d
重启容器
格式:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
选项 | 缩写 | 说明 |
---|---|---|
–time | -t | 强制关闭容器的等待时间,单位s,默认10s |
示例:
docker restart 9adde0091f5d
该命令实际上就是先执行 docker stop 然后执行 docker start
进入容器
进入容器内部。
- 使用docker attach 命令进入容器。例如:
docker attach 3b307f41cbbb
不过我使用这个命令从来没有进入过… 。如果在尝试这个命令的时候卡住了,使用快捷键
Ctrl+C来退出
- 使用 nsenter 进入容器。首先需要找到容器第一个进程的PID .可以通过以下命令获取。
docker inspect --format "{{.State.Pid}}" 3b307f41cbbb
有关nsenter的相关内容,都是以Linux 为例的。由于我是在Windows平台上,所以没有深入了解
- 使用 docker exec 命令进入容器。这种方式我最常用也是最简单的方式。示例:
docker exec -it 3b307f41cbbb /bin/bash
输入exit即可退出容器
删除容器
格式:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
选项 | 缩写 | 说明 |
---|---|---|
–force | -f | 通过SIGKILL信号强制删除正在运行中的容器 |
–link | -l | 删除容器间的网络连接 |
–volumes | -v | 不仅删除容器(如果容器有使用卷,卷也会进行相应的删除) |
有关
-v参数和构建镜像有关。后面会有相对详细的说明
示例:
docker rm 3b307f41cbbb
该命令只能删除已经停止运行的容器,如果想要删除正在运行的容器,可以使用 -f 参数。或者是先 docker stop 再删除。
示例2:
删除全部容器
docker rm -f $(docker ps -a -q)
导出容器
格式:
docker export [OPTIONS] CONTAINER
选项 | 缩写 | 说明 |
---|---|---|
–output | -o | 将内容写到文件而非标准输出 |
示例:
# 将 hardcore_dhawan 容器导出成 latest.tar 文件。其中hardcore_dhawan是容器名称 docker export hardcore_dhawan > latest.tar docker export -o "latest.tar" hardcore_dhawan
导入容器
格式:
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
选项 | 缩写 | 说明 |
---|---|---|
–change | -c | 将Dockerfile 指令应用到创建的镜像 |
–message | -m | 为导入的镜像设置提交时的文字说明 |
示例:
# 从latest.tar文件中导入并创建nginx镜像,设置标签为test docker import latest.tar nginx:test
save load export import 区别
-
save
命令是用来导出镜像的。导出的镜像文件文件会保存该镜像的所有历史记录。所以导出的文件比export
导出的大 -
export
命令是导出容器的,导出的文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。 -
load
将文件导入为镜像,无法指定镜像的名称 -
import
将文件导入为镜像,可以重新指定镜像文件的名称和标签
从功能上讲,
export相当于
commit +save,先将容器
commit成镜像,再
save成文件
查看日志
docker logs --help
示例:
# 查看名称为containerName的容器,最近30分钟的日志 docker logs --since 30m containerName
参考:
http://www.dataguru.cn/thread-650512-1-1.html
https://www.jianshu.com/p/8d834513e468
https://www.cnblogs.com/Cherry-Linux/p/8025777.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 学习Docker之Docker、容器和镜像的简介和常用命令
- DOCKER学习之(二) 容器部分常用命令
- Docker常用命令(三)---容器的常用命令(下)
- 容器Docker学习系列八~rootfs命令学习
- docker学习 基础篇(四) docker常用命令
- docker学习笔记1—常用命令
- Docker 入门学习笔记二:常用命令
- Docker学习文档之三 其他相关-Docker常用命令
- 容器Docker学习系列九~生命周期管理命令
- docker的常用命令2--容器的使用
- docker学习二--安装及常用命令
- Docker学习笔记(2)--Docker常用命令
- docker常用命令总结——安装、镜像、容器基本操作
- docker 容器的常用命令操作
- Docker容器常用命令
- Docker 学习(九) Docker Compose 常用命令
- Docker学习笔记二:Docker常用命令及提升拉取镜像的速度
- Docker学习总结(9)——Docker常用命令
- Docker | 学习系列 (四)Docker镜像常用命令使用教程
- Docker镜像容器操作常用命令