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 :向容器发送一个信号