You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

一、容器操作命令

1.列出容器 PS

  • -a : 显示所有的容器,包括未运行的。
  • -f : 根据条件过滤显示的内容。
  • format : 指定返回值的模板文件。
  • -l : 显示最近创建的容器。
  • -n : 列出最近创建的n个容器。
  • no-trunc : 不截断输出。
  • -q : 静默模式,只显示容器编号。
  • -s : 显示总的文件大小。 容器的7种状态created已创建、restarting重启中、running运行中、removing迁移中、paused暂停、exited停止、dead死亡

2. 列出指定的容器的端口映射 docker port xxx

!Snipaste_2023-03-06_09-25-52.png

3. 获取容器的日志 docker logs -f xxxx

  • -f : 跟踪日志输出
  • since : 显示某个开始时间的所有日志
  • -t : 显示时间戳
  • tail : 仅列出最新N条容器日志 !Snipaste_2023-03-06_09-25-52 1.png

3.1 第二种方法

 docker inspect --format '{{.LogPath}}' 86a50748c5d9

会返回日志路径

/var/lib/docker/containers/86a50748c5d9e63b1d30be71a043d2202b573306df0b0062072fa45234bf2836/86a50748c5d9e63b1d30be71a043d2202b573306df0b0062072fa45234bf2836-json.log

4. 查看容器中运行的进程信息 docker top xxx

!Snipaste_2023-03-06_09-25-52 2.png

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
  • automated : 只列出 automated build类型的镜像
  • no-trunc : 显示完整的镜像描述;
  • -f <过滤条件>: 列出指定条件的镜像。
docker search hadoop

!Snipaste_2023-03-06_09-25-52 3.png 每列参数说明:

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star表示点赞、喜欢的意思
  • AUTOMATED: 自动构建

四、本地镜像管理命令

1. 列出本地镜像 docker images

  • -a : 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
  • digests : 显示镜像的摘要信息
  • -f : 显示满足条件的镜像
  • format : 指定返回值的模板文件
  • no-trunc : 显示完整的镜像信息
  • -q : 只显示镜像ID
docker images

!Snipaste_2023-03-06_09-25-52 4.png

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

!Snipaste_2023-03-06_09-25-52 5.png

2.显示 Docker 版本信息 docker version

!Snipaste_2023-03-06_09-25-52 6.png

六、本地文件上传、下载docker

6.1 上传

  1. 拿到容器ID
docker ps -a
  1. docker cp 本地文件路径 ID全称:容器路径
docker cp mysql-connector-java-5.1.47.jar c8af6ce9bc12:/usr/share/java

6.2 下载

  1. 拿到容器ID
docker ps -a
  1. docker cp ID全称:容器路径 本地文件路径
docker cp c8af6ce9bc12:/usr/share/java /root