以下内容按照上文图示进行展开,此文适合懂得Docker简单使用的一些同学,所以对对应的用法不做过多的介绍。
基础命令
# 显示docker的基本信息
docker version
# 系统信息,镜像和容器的数量
docker info
镜像
镜像拉取:docker pull
# 搜索镜像
docker search 镜像名称
# 拉取镜像,不加版本默认是last最新版,版本来要来自于官网的镜像库,否则会找不到
docker pull 镜像名称[:版本]
# 查看所有镜像
docker images
镜像删除
# 查看所有镜像
docker images
# 删除一个 可以通过名称,-f 参数表示强制删除,即无需确认就删除镜像,如果该镜像正在被使用,也会被强制删除。
docker rmi -f 9cfcce23593a
# 删除多个 用空格分隔id
docker rmi -f id id id
# 删除所有,images -aq就是查所有镜像id,从而递归删除
第一种(强制删除):docker rmi -f $(docker images -aq)
第二种(非强制删除):docker rmi `docker images -q`
镜像的保存和加载
save命令:
该命令用于将一个或多个镜像保存到一个文件中。使用该命令时,可以指定需要保存的镜像名称和标签。
#用法
docker image save -o 保存的文件名 IMAGE[:tag] [IMAGE...]
-o, --output:指定保存的文件路径和名称
#例子:
docker image save -o tomcat9-me.tar tomcat:9.0
load命令:
该命令用于从文件加载一个或多个镜像。
使用该命令时,需要指定从哪个文件中加载镜像。
#用法
docker image load [OPTIONS]
-i, --input:指定加载的文件路径和名称。
# 例子
docker image load -i tomcat9-me.tar
容器
根据镜像启动容器
docker run [可选参数] 镜像名称[:版本]
# 参数说明
--name <container name> 为容器指定一个名称。
-d 后台方式运行
-it 以交互模式运行容器,通常与/bin/bash或/bin/sh一起使用
-p <host port>:<container port> 将容器的端口映射到主机端口
--rm 容器停止后自动删除容器
# 例子(前提是有tomcat:9.0这个镜像)
docker run \
-d \
-p 8023:8080 \
--name tomcat-test \
tomcat:9.0
容器的查看
# 查看正在运行的容器
docker ps
# 查看曾经运行的容器
docker ps -a
# 显示最近创建的容器,设置显示个数
docker ps -a - n=?
# 只显示容器的编号
docker ps -aq
容器的进入与退出
# 进入容器
docker exec -it <容器名/容器id> /bin/bash
# 退出容器
exit
或者快捷键:Ctrl+P+Q
容器的删除
# 删除指定容器 不能删除正在运行的容器,如果强制删除 rm -f
docker rm 容器id
# 删除所有容器(可以将正在运行的容器删除)
docker rm -f $(docker ps -aq)
# 删除所有容器(可以将正在运行的容器也删除)
docker ps -a -q|xargs docker rm
容器的停止与启动
docker start <容器名/容器id>
docker restart <容器名/容器id>
docker stop <容器名/容器id>
宿主机与容器之间文件传输
#从主机复制文件到容器:
docker cp myfile.txt <容器id>:/path/to/destination
从容器复制文件到主机:
docker cp <容器id>:/path/to/file.txt /path/to/destination
从容器复制整个目录到主机:
docker cp <容器id>:/path/to/directory /path/to/destination
容器打包成镜像
# 用法
docker commit [OPTIONS] 容器ID 镜像名[:标签]
OPTIONS:可选参数,用于配置新镜像的各种选项。
-a, --author="<author>":指定新镜像的作者。
-c, --change=[]:应用 Dockerfile 指令来创建新镜像。
-m, --message="<message>":为新镜像添加一条描述信息。
-p, --pause=true|false:在创建新镜像时是否暂停容器。默认为 true
# 例子
docker commit -a "zhangzhixi" -m "生成镜像测试" 2ce13b211f16 tomcat9-me:1.0