参考:Docker 常用命令大全_胖虎儿的博客-CSDN博客_docker命令详解大全
一.操作docker
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
二.docker版本信息
docker version
docker info
docker --help //docker 后跟随的命令
docker pull --help //docker pull 后跟随的命令
docker ps --help
docker images --help
三.docker镜像命令
2.搜索镜像
docker search 镜像名 // 查找镜像 docker search --filter=STARS=9000 mysql //搜索 STARS >9000的 mysql 镜像
3.拉取镜像
docker pull 镜像名 //拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest
docker pull 镜像名:tag//加:tag 则是拉取指定版本,docker官网查版本号
4.运行镜像
docker run 镜像名
docker run 镜像名:Tag
5.删除镜像 ------当前镜像没有被任何容器使用才可以删除
#删除一个
docker rmi -f 镜像名/镜像ID
#删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
6.保存镜像
将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
exmaple: docker save tomcat:latest -o /docker/aaaa.tar
7.加载镜像
任何装 docker 的地方加载镜像保存的文件 使其恢复为一个镜像
docker load -i 镜像保存文件位置
8.打包镜像:使用dockerfile的方式
命令:docker build -f ./Dockerfile -t devops:v1 ./target
-f :自定义Dockerfile路径和名字;
-t: 镜像的名字及标签
devops:镜像名
v1:版本
./tatget:Dockerfile路径,.就是当前目录
四.docker容器命令
容器怎么来呢 可以通过run 镜像 来构建 自己的容器实例
1.查看正在运行容器列表
docker ps
如:
docker ps -f status=exited -q
解释:
-f:过滤
status=exited 状态为exited
-q:只展示id
2查看所有容器 -----包含正在运行 和已停止的
docker ps -a
3.根据镜像 运行并进入一个容器 容器命令
docker run -it -d --name 别名 -p 8888:6379 镜像名:Tag /bin/sh
-it 表示 与容器进行交互式启动
-d 表示可后台运行容器 (守护式运行)
--name 给要运行的容器 起的名字
-p 端口映射 8888为宿主机端口,6379为容器端口
/bin/bash 交互路径
docker run 中映射多个端口 -p 111 -p 222
例如:
我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5
#1. 拉取redis 镜像
docker pull redis:5.0.5
#2.命令启动
docker run -it -d --name redis001 redis:5.0.5 /bin/bash
8.进入对应容器
docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID
9.退出容器
#-----直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭
exit
# 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q
10.操作容器
docker stop 容器ID/容器名
docker restart 容器ID/容器名
docker start 容器ID/容器名
如:
docker start $(docker ps -f status=exited -q)
解释:
docker ps -f status=exited -q:查询所有状态是exited的id
docker kill 容器ID/容器名 //强制停止对应容器
docker stop $(docker ps -a -q) // stop停止所有容器
docker rm $(docker ps -a -q) // remove删除所有容器
11.容器文件拷贝
#docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 |要拷贝到外部的路径 容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径
12.查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
五.其他
1.自己提交一个镜像
我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
2.alpine容器中可能缺少的软件
#安装bash
apk update && apk add bash
#安装unzip
apk add unzip
#安装 telnet
apk add busybox-extras



