目录
摘要:博主在学习Docker的时候,总是忘记一些命令,为避免浪费时间去查找,所以先总结一下我们运用Docker时所能遇到的一些命令,如果有小伙伴还有哪些命令是自己经常忘记的命令,可以给我评论,我加上去。(方便大家学习和记忆)
一、Docker容器命令:
1、docker --version:查看当前docker版本。
2、docker rm:删除现有的容器。
3、docker run -it 镜像名:新建跟命令行后一样的名字的容器并启动,记得这个命令是创建容器后并启动的命令。
4、docker ps -a:显示已经下载的容器。
5、docker ps:查看所有的正在运行的容器。
6、docker start 容器名/容器id:启动容器。
7、docker stop 容器名/容器id:停止正在运行的容器。
8、docker kill 容器ID或容器名:强制停止容器
9、docker restart 容器名/容器id:重启容器。
10、docker attach 容器id:进入容器的第一种方法。
11、docker exec -it 容器id /bin/bash:进入容器的第二种方法。
12、docker kill 容器id或容器名:查看容器日志。
13、docker top 容器id:查看容器内运行的进程。
14、docker inspect 容器id:查看容器内部细节。
15、docker cp 容器id:容器内路径 目的主机路径:从容器内拷贝文件到主机上。
16、docker export 容器ID > 文件名.ta:导出容器。
17、cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号:导入容器。
18、容器中有很多中方式可以退出,例如:Ctrl+C
、Ctrl+D
、Ctrl+Q
。
退出命令 | 命令描述 |
Ctrl+C | 退出容器,同时会关闭容器 |
Ctrl+D | 与exit同义,退出容器,同时会关闭容器 |
Ctrl+Q | 退出容器,恢复到主机终端,不会关闭容器 |
重点:进入docker建议使用 docker exec 容器id /bin/bash 命令
原因:这种方式进入后再从这个容器退出,容器是不会停止。这就是为什么推荐大家使用 docker exec 的原因。
注意:如果出现 OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
这种错误,是我们docker镜像中的/bin/bash文件并不存在,可能存在的是/bin/sh文件,使用
docker exec -it 容器id /bin/sh
二、Docker镜像命令
1、docker pull 镜像名:下载docker镜像。(如果提示权限不够,那么需要在命令前加sudo,即 sudo docker pull)。
2、docker images:查看当前已经下载的镜像。
3、docker search [OPTIONS] 镜像名字:搜索镜像。(OPTIONS说明:--limit : 只列出N个镜像,默认25个)。
4、docker image tag 镜像名 要修改成的名字 :将现有的(已经下载的)容器换个名字(即将原本的容器给复制一份换个名字存储)。
5、docker pull 镜像名:下拉镜像。
6、docker system df :查看镜像/容器/数据卷所占的空间。
7、docker rmi 镜像名/id(当名字重复时用id) :删除现有的镜像。
8、docker rmi -f 镜像id :删除单个镜像
9、docker load -i 镜像名.tar :导入已经打包好的镜像压缩包
三、重启Docker命令
1、systemctl restart docker
2、systemctl stop docker
四、Docker数据卷命令
1、docker volume create 数据卷名 :创建数据卷
2、docker volume ls :查看数据卷(列出所有的volume)
3、docker volume inspect 数据卷名:查看数据卷的详细信息
4、docker volume rm 数据卷名 :删除指定的数据卷
5、docker volume prune :删除未使用的数据卷
五、挂载数据卷
docker run --name mn -v html:/root/htm -p 8080:80 nginx
docker run :就是创建并运行容器
--name mn :给容器起个名字叫mn
-v html:/root/htm:把html数据卷挂载到容器内的/root/html这个目录中
-p 8080:80:把宿主机的8080端口映射到容器内的80端口
nginx:容器名字