Docker常用的实用命令
官网命令
网址:https://docs.docker.com/engine/reference/run/
可以看到里面有所有的关于docker命令行的操作命令
帮助命令
语法:
1 | docker 命令 --help |
功能:帮助命令,好用的帮助查询命令。
比如我们现在想知道 docker run 里面的各项参数的含义是什么的话,那么我们可以输入以下命令:
1 | docker run --help |
出现以下界面则表示将所有可选项参数都给我们展示出来了,对我们后续的查询及提供帮助文档非常实用。
1 | [root@localhost data]# docker run --help |
docker images
功能:列出所有镜像
命令:
1 | docker images |
1 | [root@localhost data]# docker images |
名词解释:
表头 | 说明 |
---|---|
REPOSITORY | 镜像仓库源 |
TAG | 镜像标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建时间 |
SIZE | 镜像的大小 |
可选项参数:
1 | -a 显示所有的镜像 |
docker search
功能:搜索镜像
命令:
1 | docker search mysql |
1 | [root@localhost data]# docker search mysql |
docker pull
功能:下载镜像,它采用的是分层下载
下载最新版本
命令:
1 | docker pull mysql |
下载指定版本
命令:
1 | docker pull mysql:5.7 |
docker rmi -f [镜像id]
功能:删除指定镜像
图片
删除指定镜像
命令:
1 | docker rmi -f 7b94cda7ffc7 |
删除所有镜像
命令:
1 | docker rmi -f $(docker images -aq) |
docker run
功能:创建并启动一个容器
下载指定镜像
命令:
1 | docker pull centos |
创建并启动容器
命令:
1
docker run -it centos /bin/bash
docker ps
功能:列出所有正在运行的容器
列出所有正在运行的容器
命令:
1 | docker ps |
列出所有的容器(正在运行的容器和历史运行过的容器)
命令:
1 | docker ps -a |
docker rm -f [容器id]
功能:删除指定容器
删除指定容器
命令:
1 | docker rm -f 9bc74608b76e |
删除所有容器
命令:
1 | docker rm -f $(docker ps -aq) |
docker start [容器id]
功能:启动容器
命令:
1 | docker start [容器id] |
docker restart [容器id]
功能:重启容器
命令:
1 | docker restart [容器id] |
docker stop [容器id]
功能:停止当前正在运行的容器
命令:
1 | docker stop [容器id] |
docker kill [容器id]
功能:强制停止当前正在运行的容器
命令:
1 | docker kill [容器id] |
docker logs
功能:查看容器日志
查看指定时间后的日志,只显示最后100行:
1 | docker logs -f -t --since="2022-08-08" --tail=100 CONTAINER_ID |
查看最近30分钟的日志:
1 | docker logs --since 30m CONTAINER_ID |
查看某时间之后的日志:
1 | docker logs -t --since="2022-08-18T11:46:37" CONTAINER_ID |
查看某时间之后最新的100条日志:
1 | docker logs -t --since="2022-08-08T11:46:37" --tail=100 CONTAINER_ID |
查看某时间段日志:
1 | docker logs -t --since="2022-08-18T11:46:37" --until "2022-08-18T11:47:37" CONTAINER_ID |
打印匹配行的前后10行
1 | docker logs CONTAINER_ID | grep -C 10 'error' |
把日志写入文件:
1 | docker logs -t CONTAINER_ID | grep 'error' >> logs_error.txt |
进入容器
功能:进入容器
进入当前容器后开启一个新的终端,可以在里面操作。(常用)
1 | docker exec -it 容器id /bin/bash |
进入容器正在执行某个命令的终端,不能在里面操作
1 | docker attach 容器id |
容器数据卷
功能:挂载数据卷
查看所有卷的情况
1 | docker volume ls |
查看具体的卷信息
1 | docker volume inspect 容器id |
-v 容器内路径 匿名挂载(只写了内部的挂载路径)
1 | docker run -d -P --name nginx01 -v /etc/nginx:rw nginx |
-v 卷名:容器内路径 具名挂载
1 | docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx |
1 | -v /宿主机路径:容器内路径 指定路径挂载 |
所有容器内的卷,如果没有指定目录的情况下都是在/var/lib/dockervolumes/xxxx/_data
拷贝
功能:容器、宿主机文件互相拷贝
容器到宿主机
1 | docker cp 容器id:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 |
宿主机到容器
1 | docker cp 要拷贝的文件路径 容器id:要拷贝到容器里面对应的路径 |
更改容器时间
功能:修改容器的时间,有的时候,我们因为一些操作导致容器内的时间和宿主机时间不一致,这个时候我们可能需要进行修改。
1、以root身份进入容器
1
docker exec -it -u root 24795ac94ae7 /bin/sh
可以使用date -R 查看时间
2、在容器中创建文件
1 | mkdir -p /usr/share/zoneinfo/Asia |
3、回到宿主机,复制宿主机里的文件到容器中
1 | docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia |
4、进入容器
1 | docker exec -it -u root 容器Id或容器名 bash |
执行命令
1
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
图片
5、执行date -R 查看时区显示时间是否正确
docker内安装vim
功能:我们的docker容器内是一个小的虚拟机环境,它没有一些类似vim的命令,那我们在容器内使用这些命令的话就需要单独进行安装
第一步 配置国内镜像源
进入某个容器,例如进入mysql
1
docker exec -it mysql /bin/bash
1 | mv /etc/apt/sources.list /etc/apt/sources.list.bak |
第二步:更新源
1 | apt update |
第三步安装vim
1 | apt-get install vim |
docker打包及导出
功能:将docker镜像打包进行导入导出
1、保存正在运行的容器为镜像commit(基本不使用)
1 | docker commit 容器id/容器名称 |
2、保存正在运行的容器为镜像压缩包import/export
1 | docker export 容器id > redis.tar |
3、保存镜像为压缩包save/load
1 | docker save 镜像id/镜像名称 > 包名称 |
一些区别:
export导出的镜像体积要小于save(save保存更完全,export会丢掉一些不必要的数据)
save可以将多个镜像打包到同一个文件中
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;