容器是镜像运行的实例,镜像是静态的可读文件,而容器带有运行环境与运行的应用
操作Docker容器(container)
1.创建容器
# 创建容器 create
# docker container create [OPTIONS] NAME[:TAG]
# -i 保持标准输入模式打开,默认为false
# -t 是否分配一个伪终端,默认为false
docker container create -it test:0.1
2.启动容器
# 启动容器 start
# 使用 docker container create 命令新建容器默认处于停止状态
# docker container start CONTAINER
docker container start 6c7265442022
3.停止容器
①暂停/恢复运行 容器
# 暂停容器 pause
# docker container pause CONTAINER
docker container pause 6c7265442022
# 使暂定状态的容器恢复到运行状态 unpause
# docker container unpause CONTAINER
①停止 容器
# 停止容器 stop
# docker container stop CONTAINER
docker container stop 6c7265442022
可以使用 docker container kill 强制停止容器
重新启动使用 docker container start
4.进入容器
进入容器进行操作
# 进入容器 attach
# docker container attach CONTAINER
docker container attach 6c7265442022
当执行exit命令退出时容器会改变为停止状态,需要重新start才能使容器正常运行,推荐ctrl+p+q进行退出,这样容器仍继续运行
然而使用 attach 命令时,多个窗口同时登陆到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作
进阶:
Docker 1.3.0 起可使用exec命令,可以在运行中容器内执行任意命令
# 例:打开一个新的终端,在不影响容器内其他应用的情况下与容器进行交互
# -i 打开标准输入接受用户输入命令 -t 分配一个伪终端
# 这样当执行exit命令退出终端时容器仍然处于运行状态哦
docker container exec -it 6c7265442022 /bin/bash
5.删除容器
# 删除容器 rm
# docker container rm CONTAINER
# -f 强行删除 -l 删除容器的连接,但保留容器 -v 删除容器挂载的数据卷
docker container rm 6c7265442022
默认情况下 docker container rm 只能删除停止状态下的容器,如要删除运行中的容器,可以添加-f参数,此时Docker会先发送SIGKILL信号给容器,终止其中应用之后进行强制删除
6.导入与导出容器
容器也是可以从一个系统迁移到另一个系统的哦
①导出
不管容器是否处于运行状态,也可以将容器导出到一个文件里
# 导出容器 export
# docker container export -o FILE CONTAINER
docker container export -o containerTest1.tar 4b25c365eac1
②导入
导入的文件可以使用 docker import 命令导入变成镜像
7.查看容器情况
# 查看容器详情 inspect
# docker container inspect CONTAINER
docker container inspect eb599f4b0b3d
# 查看容器内进程信息 top
docker container top eb599f4b0b3d
# 查看容器CPU、内存、储存、网络等使用情况 stats
# -a 输出所有容器的统计信息 --no-stream 不持续输出
docker container stats eb599f4b0b3d
8.容器相关的其他命令
① run 命令
直接新建(create)并启动(start)容器
docker container run = docker container create + docker container start
-d 后台运行容器
-p 指定映射到本机的端口
②在容器与主机之间复制文件
# 复制文件 cp
# docker container cp FILE CONTAINER:/FILE
docker container cp helloworld.txt eb599f4b0b3d:/hello.txt