关于docker
容器创建/启动
创建容器
docker create [-i] [-t] [–rm] [–name] 容器名 [command][arg…]
-i, --interactive: 容器是否和标准输入进行关联
-t, --tty: 创建容器的时候是不是给容器关联虚拟终端
–rm: 容器停止之后是否会自动销毁
–name: 给创建的容器指定一个名字, 如果不指定, 名字是随机生成的
[COMMAND] [ARG…]
启动容器之后, 在容器中执行一个命令
不知道指定什么命令, 指定bash
容器启动
docker start [-a] [-i] 容器名
-a,关联标准输出/标准错误
-i,关联标准输入
暂停/重启容器
暂停
docker pause 容器名/容器ID
取消暂停
docker unpause 容器名/容器ID
重启
docker restart [-t] 容器名/容器ID
-t,延迟重启,默认10s
容器关闭/终止/删除
关闭
docker stop [-t] 容器名/容器ID
终止
docker kill 容器名/容器ID
删除
docker rm -f 容器名/容器ID
批量删除:
docker rm -f $(docker ps -aq)
docker rm. -f `docker ps -aq`
原理:
docker ps -aq: 只显示所有容器的Id
先通过docker ps -aq获取所有的容器id, 然后执行rm 指令,实现批量删除容器
关闭/终止/删除容器
创建并进入容器
docker run -it --name 容器名 镜像名 shell命令
手动进入
以守护进程启动容器
docker run -itd --name 容器名 镜像名 shell命令
进入容器
docker exec -it 容器名/容器ID bash
docker run -p [ip:][hostPort]:[containerPort] redis
使用-p参数 会分配宿主机的端口映射到虚拟机。
IP表示主机的IP地址。
hostPort表示宿主机的端口。
containerPort表示虚拟机的端口。
退出容器
exit
warning:如果在docker run时没有指定-rm,exit之后,需要手动删除容器
容器的日志/详细信息/端口/重命名
查看容器的日志信息
docker logs 容器名/容器ID
查看容器的详细信息
docker inspect 容器名/容器ID
查看容器端口信息
docker port 容器名/容器ID
容器重命名
docker rename 旧容器名 新容器名
基于容器导入/导出镜像(仅是快照,没有镜像存储文件的完整信息)
导入
docker import 要导入的名字(可以自己起名)
cat 要导入的镜像
导出
docker export 容器名/容器ID>要导出的镜像名
查找本机已有镜像
docker images 镜像名
docker image ls 镜像名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cw4fBQq2-1624158446143)(D:\读书人的资料\temp\docker\docker images.jpg)]
REPOSITORY:来源哪个仓库
TAG:镜像标签,(一般是版本信息
IMAGE ID:镜像ID,如果两个相同ID指向的是同一个镜像,知识标签名不同
CREATED:镜像最后更新时间
SIZE:镜像大小,优秀的镜像一般体积较小,推荐使用轻量级alpine版本
搜索镜像
docker search 镜像名称
获取镜像
docker pull 镜像名称(下载远程仓库(如:docker hub)中的镜像)
存储位置
linux:/var/lib/docker
重命名镜像
docker tag 镜像名[:tag] 新镜像名[:tag]
如果镜像被重命名了,通过镜像ID是不能直接删除的(可通过REPOSITORY和TAR删除)
重命名不会重新复制一个镜像,但删除时需要删除两次
删除镜像和容器:
docker rmi 镜像名/镜像ID
如果镜像被重命名了,通过镜像ID是不能直接删除的
如果镜像被重命名了2次,则需要删除两次镜像
docker rm 容器ID
当容器删除失败,我们要先用docker ps查看当前正在运行的容器
当镜像删除失败,我们必须先删除镜像所在的docker
遇到多个相同镜像ID时,删除可能不成功,我们可以根据"REPOSITORY"和"TAR"删除
查看容器
docker ps # 查看当前正在运行的容器
docker ps -a # 查看已退出的容器
导入和导出镜像
warning:export和import导出的是容器的快照,不是镜像本身,也就是说没有layer
快照将丢弃所有的历史记录和元数据信息(即保存容器当前的快照状态),而镜像存储文件有完整的记录
镜像导入(不能对镜像重命名)
docker load [-i] [-q]要导入的镜像文件名
-input,指定导入的文件,代替STDIN
-quiet,精简输出消息
镜像导出
docker save -o 要导出的镜像文件名
导入导出容器快照
docker import [-c] [-m] 文件名
-c,应用docker指令创建镜像
-m,提交时的说明文字
docker expor [-o] 文件名
docker save 保存的是镜像(image),docker export 保存的是容器(container)
docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像
docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称
镜像的历史和详细信息
docker history 镜像名/镜像ID