7.2 KiB
一、容器操作命令
1.列出容器 PS
- -a : 显示所有的容器,包括未运行的。
- -f : 根据条件过滤显示的内容。
- –format : 指定返回值的模板文件。
- -l : 显示最近创建的容器。
- -n : 列出最近创建的n个容器。
- –no-trunc : 不截断输出。
- -q : 静默模式,只显示容器编号。
- -s : 显示总的文件大小。 容器的7种状态:created(已创建)、restarting(重启中)、running(运行中)、removing(迁移中)、paused(暂停)、exited(停止)、dead(死亡)。
2. 列出指定的容器的端口映射 docker port xxx
3. 获取容器的日志 docker logs -f xxxx
3.1 第二种方法
docker inspect --format '{{.LogPath}}' 86a50748c5d9
会返回日志路径
/var/lib/docker/containers/86a50748c5d9e63b1d30be71a043d2202b573306df0b0062072fa45234bf2836/86a50748c5d9e63b1d30be71a043d2202b573306df0b0062072fa45234bf2836-json.log
4. 查看容器中运行的进程信息 docker top xxx
5.创建一个新的容器 docker run
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-
-d: 后台运行容器,并返回容器ID;
-
-i: 以交互模式运行容器,通常与 -t 同时使用;
-
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-
--name="nginx-lb": 为容器指定一个名称;
-
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
-
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-
-h "mars": 指定容器的hostname;
-
-e username="ritchie": 设置环境变量;
-
--env-file=[]: 从指定文件读入环境变量;
-
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-
**-m :**设置容器使用内存最大值;
-
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
-
--link=[]: 添加链接到另一个容器;
-
--expose=[]: 开放一个端口或一组端口;
-
--volume , -v: 绑定一个卷
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
6. 启动、停止、重启 docker start/stop/restart
docker start xxx
docker stop xxx
docker restart xxx
7.杀掉一个运行中的容器 docker kill
docker kill xxx
8. 删除一个或多个容器 docker rm
强制删除容器 db01、db02
docker rm -f db1 db3
9. 在运行的容器中执行命令或进入容器 docker exec
- -d : 分离模式: 在后台运行
- -i : 即使没有附加也保持STDIN 打开
- -t : 分配一个伪终端 在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本:
docker exec -it mynginx /bin/sh /root/runoob.sh
在容器 mynginx 中开启一个交互模式的终端:
docker exec -i -t mynginx /bin/bash
通过 docker ps -a 命令查看已经在运行的容器,然后使用容器 ID 进入容器。
# docker ps -a ...
9df70f9a0714 openjdk "/usercode/script.sh…"
...
第一列的 9df70f9a0714 就是容器 ID。 通过 exec 命令对指定的容器执行 bash:
docker exec -it 9df70f9a0714 /bin/bash
# root 权限进入
docker exec -it -u root 9df70f9a0714 bash
二、容器rootfs命令
1. 容器与主机之间的数据拷贝 docker cp
- -L : 保持源目标中的链接 语法格式:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp tomcat:/usr/local/tomcat/README.md ./
三、镜像仓库命令
1. 从镜像仓库中拉取或者更新指定镜像 docker pull
- -a : 拉取所有 tagged 镜像
- –disable-content-trust : 忽略镜像的校验,默认开启
docker pull mysql
2. 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库 docker push
- –disable-content-trust : 忽略镜像的校验,默认开启
docker push mysql:v2
3.从Docker Hub查找镜像 docker search
- –automated : 只列出 automated build类型的镜像;
- –no-trunc : 显示完整的镜像描述;
- -f <过滤条件>: 列出指定条件的镜像。
docker search hadoop
- NAME: 镜像仓库源的名称
- DESCRIPTION: 镜像的描述
- OFFICIAL: 是否 docker 官方发布
- stars: 类似 Github 里面的 star,表示点赞、喜欢的意思
- AUTOMATED: 自动构建
四、本地镜像管理命令
1. 列出本地镜像 docker images
- -a : 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
- –digests : 显示镜像的摘要信息
- -f : 显示满足条件的镜像
- –format : 指定返回值的模板文件
- –no-trunc : 显示完整的镜像信息
- -q : 只显示镜像ID
docker images
2. 删除本地一个或多个镜像 docker rmi
- -f : 强制删除;
- –no-prune : 不移除该镜像的过程镜像,默认移除;
强制删除本地镜像 guodong/ubuntu:v4 docker rmi -f guodong/ubuntu:v4
3.将指定镜像保存成 tar 归档文件 docker save
- -o : 输出到的文件。 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
4.load导入使用 docker save
命令导出的镜像 docker load
- –input , -i : 指定导入的文件,代替 STDIN。
- –quiet , -q : 精简输出信息。
导入镜像 docker load --input fedora.tar
五、基础版本信息
1.显示 Docker 系统信息,包括镜像和容器数。 docker info
2.显示 Docker 版本信息 docker version
六、本地文件上传、下载docker
6.1 上传
- 拿到容器ID
docker ps -a
- docker cp 本地文件路径 ID全称:容器路径
docker cp mysql-connector-java-5.1.47.jar c8af6ce9bc12:/usr/share/java
6.2 下载
- 拿到容器ID
docker ps -a
- docker cp ID全称:容器路径 本地文件路径
docker cp c8af6ce9bc12:/usr/share/java /root