docker常用命令

118 阅读3分钟

docker镜像的常用命令

pull命令

拉取tomcat tag是9.0.20-jre8
docker pull tomcat:9.0.20-jre8

常用参数

  • -a,--all-tagss=true|false:是否获取仓库中所有的镜像,默认为否;
  • --disable-content-trust:跳过镜像内容的校验,默认为 true;

images命令

列出所有本机已有的对象
docker images
docker image ls

名词解释:

  • REPOSITORY:镜像的仓库源(名称)
  • TAG:镜像的标签(版本和系统)
  • IMAGE ID:镜像的唯一id
  • CREATED:镜像创建时间
  • SIZE:镜像大小

save命令

docker save tomcat:9.0.20-jre8 -o tomcat.tar
docker save tomcat:9.0.20-jre8 > tomcat1.tar

参数说明: -o:输出到文件

保存多个镜像
mkdir -p /data
cd /data 
docker save \ 
ubuntu:20.04 \ 
alpine:3.12.1 \
debian:10.6-slim \ 
centos:7.8.2003 \ 
-o linux.tar 


docker save \ 
tomcat:9.0.20-jre8-alpine \
tomcat:9.0.20-jre8-slim \
tomcat:9.0.20-jre8 \ 
-o tomcat9.0.20.tar

load命令

docker load [OPTIONS] 文件
docker load -i tomcat.tar
docker load < tomcat9.0.20.tar

参数说明:

  • -i:指定导入的文件 --input
  • -q:精简输出信息 -- quiet

history命令

docker history tomcat:9.0.20-jre8-alpine

tag命令

标记本地镜像,将其归入某一仓库
docker tag tomcat:9.0.20-jre8-alpine localRepository/tomcat:9

rmi命令

docker rmi tomcat:9.0.20-jre8-alpine
docker image rm tomcat:9.0.20-jre8-alpine

通过id删除
docker rmi 镜像id


清理镜像
# 我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以 下命令进行清理。执行完命令后,还是告诉我们释放了多少存储空间!
docker image prune

参数:

  • -f,-force:强制删除镜像,即便有容器引用该镜像;
  • -no-prune:不要删除未带标签的父镜像;

docker容器常用命令

新建并启动容器run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it --rm --name tomcat -p 8080:8080 tomcat:9.0.20-jre8

常用参数:

  • -d, --detach=false: 后台运行容器,并返回容器ID
  • -i,--interactive=false:以交互模式运行容器,通常与-t同时使用
  • -t,:为容器重新分配一个伪输入终端,通常与-i同时使用
  • -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐各位小伙伴们使用
  • --name="nginx-lb": 为容器指定一个名称
  • -h , --hostname="laosiji": 指定容器的hostname
  • -e , --env=[]: 设置环境变量,容器中可以使用该环境变量
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
  • --link=[]: 添加链接到另一个容器;不推荐各位小伙伴使用该参数
  • -v, --volume : 绑定一个卷
  • --privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities
  • --restart=no:指定容器停止后的重启策略
    no:容器退出时不重启
    on-failure:容器故障退出(返回值非零)时重启
    always:容器退出时总是重启,推荐各位小伙伴们使用
  • --rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器

容器日志

docker logs [OPTIONS] 容器名称

docker logs -f tomcat
docker logs -f --tail=50 tomcat

常用参数:

  • -f:跟踪日志输出
  • --tail:仅列出最新N条容器日志

删除容器

docker rm [OPTIONS] 容器1 容器2 ...

需要先停止容器才能删除
docker stop tomcat
docker rm tomcat

常用参数:

  • -f:通过SIGKILL信号强制删除一个运行中的容器
  • -l:移出容器间的网络连接,而非容器本身
  • -v:删除与容器关联的卷

列出容器

docker ps [OPTIONS]

docker ps
docker ps -a

常用参数:

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

输出详情介绍:

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的镜像。
  • COMMAND: 启动容器时运行的命令。
  • CREATED: 容器的创建时间。
  • STATUS: 容器状态。 状态有7种: created(已创建) restarting(重启中) running(运行中) removing(迁移中) paused(暂停) exited(停止) dead(死亡)
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
  • NAMES: 自动分配的容器名称。

创建容器

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

docker create -it --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8

启动、重启、终止容器

docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...] 
docker restart [OPTIONS] CONTAINER [CONTAINER...]

docker start tomcat9
docker stop tomcat9
docker restart tomcat9

进入容器

docker exec [OPTIONS] 容器名 COMMAND [ARG...]

docker exec -it tomcat9 /bin/bash    
以什么命令行方式进入
/bin/bash  方式1
sh  方式2

参数:

  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

查看容器

docker inspect : 获取容器/镜像的元数据。

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

docker inspect tomcat9

更新容器

docker update :可以动态地更新容器配置。可以更新一个或多个容器配置。多个容器名称或ID之间使 用空格分隔。但update命令不是很成熟,有很多配置项不能动态更新。推荐大家还是rm容器后,再重 新run一个新的镜像

docker update [OPTIONS] CONTAINER [CONTAINER...]

更新容器restart策略 
docker update --restart always tomcat9

杀掉容器

docker kill tomcat9

参数:

  • -s :向容器发送一个信号