第五节 Docker常用命令

亮子 2021-06-08 02:07:01 11188 0 0 0

1、帮助命令

1)、docker 版本命令

docker version

图片alt

2)、docker 信息命令

docker info

图片alt

3)、docker 帮助命令

docker --help

图片alt

2、镜像命令

1)、列出本地仓库的镜像

docker images
# 列出本地所有的镜像(含中间映像层)
docker images -a
# 只显示镜像ID
docker images -q
# 显示镜像的摘要信息
docker images --digests
# 显示完整的镜像信息
docker images --no-trunc

图片alt

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间.

  • SIZE:镜像大小

2)、查找镜像

官网: https://hub.docker.com/

docker search
# 查找30颗星以上的tomcat
docker search -s 30 tomcat

图片alt

3)、下载镜像

docker pull tomcat
docker pull tomcat:latest

4)、删除镜像

# docker rmi
# 删除单个镜像
docker rmi hello-world
# 强制删除单个镜像
docker rmi -f hello-world
docker rmi -f hello-world:latest
docker rmi -f fce289e99eb9
# 强制删除多个镜像
docker rmi -f aaa bbb ccc
# 删除所有的镜像
docker rmi -f $(docker images -qa)

图片alt

3、容器命令

1)、创建容器

  • 前置条件:有镜像才能创建容器。
  • 命令语法:**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: 绑定一个卷

(1)使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest

(2)使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest

(3)使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

(4)绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

(5)使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it nginx:latest /bin/bash
docker run -d centos /bin/bash -c "nohup ping -i 1000 www.baidu.com"

2)、列出运行中的容器

命令语法:

docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。

  • -f :根据条件过滤显示的内容。

  • --format :指定返回值的模板文件。

  • -l :显示最近创建的容器。

  • -n :列出最近创建的n个容器。

  • --no-trunc :不截断输出。

  • -q :静默模式,只显示容器编号。

  • -s :显示总的文件大小。

(1)列出所有在运行的容器信息。

docker ps

输出信息介绍:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

状态有7种:

  • created(已创建)
  • restarting(重启中)
  • running(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

NAMES: 自动分配的容器名称。

(2)列出最近创建的5个容器信息。

docker ps -n 5

(3)列出所有创建的容器ID。

docker ps -a -q

3)、退出容器

  • exit

  • conrol+Q+P

4)、重启容器

docker start e4e2ec69dde3
docker restart e4e2ec69dde3

5)、停止容器

docker stop e4e2ec69dde3
docker kill e4e2ec69dde3

6)、删除容器

# 删除已停止的容器
docker rm e4e2ec69dde3
# 强制删除容器
docker rm -f e4e2ec69dde3
# 删除所有容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

7)、后台运行容器

docker run -d centos /bin/sh -C "while true;do echo hello;sleep 2;done"

8)、查看容器日志

docker logs e4e2ec69dde6
docker logs -t -f --tail 3 e4e2ec69dde6

9)、查看容器内运行的进程

# docker top 容器ID
docker top e4e2ec69dde6

10)、查看容器内部细节

# docker inspect 容器ID
docker inspect e4e2ec69dde6

11)、进入正在运行的容器

# docker exec -it 容器ID bashshell
docker exec -t e4e2ec69dde6 ls -l /tmp

# 进入正在运行的容器并以命令行交互
# docker attach 容器ID
docker attach e4e2ec69dde6

12)、从容器内拷贝文件到宿主机

# docker cp 容器ID:容器内路径 目的主机目录
docker cp e4e2ec69dde6:/tmp/t.log /tmp

13)、查看docker容器的IP

docker inspect --format='{{.NetworkSettings.IPAddress}}' nginx

图片alt

4、总结

1)、常用命令

图片alt

2)、生命周期

图片alt