介绍常用的容器命令
运行镜像:
执行语句为: docker run [参数] IMAGE [命令] ,参数分为一个减号与两个减号
IMAGE 可以为 镜像名:版本号 或 镜像ID
主要参数:
- --name="容器新名字":为容器指定一个名称,不指定将随机命名
- -d:后台运行容器并返回容器ID,即启动守护式容器**(也称后台运行模式、detached 模式),没有该参数为前台运行,称为 attached 模式**
- -i:以交互模式运行容器,通常与 -t 同时使用
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
- -P:随机端口映射
- -p:指定端口映射
- ** **--restart=always :当docker重启时容器也进行重新启动,具体可查看[可视化管理章节](https://www.yuque.com/yuxuandmbjz/docker/ud34wq)
- -v:挂载目录,完整命令为 docker run -it -v /宿主机目录:/容器目录 --privileged=true 镜像名
其中 —privileged=true 为赋予挂载目录权限,避免执行后提示 cannot open directory .: Permission denied (没权限),具体可查看容器数据卷章节
后台运行容器只能在可后台运行的镜像上才能生效,例如 Ubuntu、Centos 这类系统镜像不适用 -d 参数
-it 相当于在目标镜像启动时创建一个 bash 操作窗口,没有该参数在将无法正常运行可交互镜像
在启动可交互镜像时可以指定不同的操作方式,例如 /bin/sh、/bin/bash 等,默认为 bash
列出容器信息:
命令为 :docker ps ,默认为列出当前正在运行的容器,STATUS 代表容器当前状态(UP:当前运行,EXITED:结束运行,CREATED:仅创建)
主要参数:
- -a:列出当前所有容器( 正在运行的容器+历史上运行过的+仅创建 )
- -l:显示最近创建的容器
- -n:显示最近n个创建的容器,后面需带上数字
- -q:静默模式,只显示当前正在运行容器的容器编号
退出容器:
分为 exit 与 ctrl+p+q,exit 为退出并停止容器,ctrl+p+q 仅退出
进入容器:
使用 ctrl+p+q 退出容器后,可通过执行 docker exec -it 容器ID [command] 再次进入容器
除了 exec 方法,还有 docker attach 容器ID 可以再次进入容器,区别在于 attach 直接进入容器启动命令的终端,不会启动新的进程,用 exit 、ctrl + c 退出,会导致容器的停止;exec 是在容器中打开新的终端,并且可以启动新的进程,用 exit 退出,不会导致容器的停止
启动已停止运行的容器:
操作命令:docker start 容器ID或者容器名
仅能启动存在镜像的容器,当镜像不存在时对应容器不会被启动
重启容器:
操作命令:docker restart 容器ID或者容器名
停止容器:
操作命令:docker stop 容器ID或者容器名
强制停止容器:
操作命令:docker kill 容器ID或容器名
删除容器:
执行命令:docker rm [参数] 容器ID或容器名称
正常删除容器时需要容器停止运行,只能通过强制删除来删除正在运行时的容器
强制删除全部容器命令:docker rm -f $(docker ps -a -q) 或 docker ps -a -q | xargs docker rm -f
删除所有退出的容器:docker system prune -f
主要参数:
- -f:强制删除
查看容器日志:
操作命令:docker logs 容器ID
查看容器进程:
操作命令:docker top 容器ID
查看容器内部细节:
操作命令:docker inspect 容器ID
从容器内拷贝文件到主机上:
操作命令:docker cp 容器ID:容器内路径 目的主机路径
导出:
导出容器的内容留作为一个 tar 归档文件
操作命令:docker export 容器ID > 名称.tar
导入:
将通过 export 打包的容器导入到 docker 中,导入后将创建镜像。运行导入后的镜像只能通过 Image ID 进行启动
操作命令:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
提交容器为镜像:
将容器提交为镜像,不需要先打包再导入
操作命令:docker commit -m=”提交信息” -a=”作者” 容器ID 目标镜像名:版本号
DockerFile 生成镜像:
案例参考:dockerFile 章节
docker build -t 镜像名称:版本号 .