写在前面
以下内容来自
Docker快速手上视频教程(无废话版) https://www.bilibili.com/video/BV1oE411k7rS?p=14
这里主要是对视频中讲到的命令做一个总结。
docker常用命令
(如果提示权限不足,需要通过增加 sudo
来增加管理员权限)
一、Docker基本命令
命令 | 功能 |
---|---|
systemctl start docker | 启动 Docker |
systemctl stop docker | 停止 Docker |
systemctl restart docker | 重启 Docker |
systemctl enable docker | 开机启动 Docker |
docker info | 查看 Docker 信息 |
docker --help | 查看 Docker 帮助文档 |
docker version | 查看 Docker 版本信息 |
二、Docker镜像操作命令
命令 | 功能 | 可选参数 | 举例说明 |
---|---|---|---|
docker images | 列出本机所有的镜像 | -a -q -qa --digests --no-trunc | |
docker search 镜像名称 | 搜索某个 Docker 镜像 | docker search tomcat | |
docker pull 镜像名称[:TAG] | 下载某个 Docker 镜像,TAG选填,默认是latest | docker pull tomcat | |
docker rmi 镜像名称[:TAG] | 删除某个 Docker 镜像,TAG选填,默认是latest | -f 强制删除 | docker rmi -f tomcat |
docker rmi -f $(docker images -qa) | 删除全部 Docker 镜像 | docker rmi -f $(docker images -qa) |
三、Docker容器操作命令
命令 | 功能 | 可选参数 | 举例说明 |
---|---|---|---|
docker run -it --name 别名 镜像ID | 创建容器别名并启动容器 | -i : 以交互式模式运行容器,通常与 -t 同时使用; -t : 为容器重新分配一个伪输入的终端,通常与 -i 同时使用 | docker run -it --name mycentos centos:7 |
docker ps [选项] | 列出容器 | -a 查看所有容器 -n * 查看最近创建的*个容器 -f status=exited 查看停止的容器 | docker ps 查看正在运行的容器 docker ps -a 查看所有的容器 docker ps -n 2 查看最近创建的2个容器 docker ps -f status=exited 查看已经停止的容器 |
exit 或者 Ctrl+p+q | exit 容器停止并退出容器虚拟终端 Ctrl+p+q 容器不停止但会退出容器虚拟终端 | – | exit Ctrl+p+q |
docker attach 容器ID或者容器名 | 进入容器 | – | docker attach b61c81a79c77 |
docker start 容器ID或者容器名 | 启动容器 | – | docker start b61c81a79c77 |
docker restart 容器ID或者容器名 | 重启容器 | – | docker restart b61c81a79c77 |
docker stop 容器ID或者容器名 | 停止容器(速度较慢) | – | docker stop b61c81a79c77 |
docker kill 容器ID或者容器名 | 暴力删除,直接杀掉进程(速度很快,但不推荐) | – | docker kill b61c81a79c77 |
docker rm 容器ID或者容器名 | 删除容器 | -f 强制删除(加上 -f 可以删除正在运行的容器) | docker rm -f b61c81a79c77 docker rm -f 容器ID1 容器ID2 (中间空格隔开) 删除多个容器 docker rm -f $(docker ps -qa) 删除所有容器 |
四、Docker容器操作进阶命令
命令 | 功能 | 可选参数 | 举例说明 |
---|---|---|---|
docker run -di --name 别名 镜像ID | 守护式方式创建容器别名并启动容器,不会进入到容器内 | -i : 以交互式模式运行容器,通常与 -t 同时使用; -t : 为容器重新分配一个伪输入的终端,通常与 -i 同时使用 -d : 后台运行容器,并返回容器ID | docker run -di --name mycentos 8652b9f0cb4c |
docker run -it --name 别名 镜像ID /bin/bash (这个命令用得不多) | 创建容器别名并启动容器,并执行 /bin/bash 命令 | -i : 以交互式模式运行容器,通常与 -t 同时使用; -t : 为容器重新分配一个伪输入的终端,通常与 -i 同时使用 | docker run -it --name mycentos 8652b9f0cb4c /bin/bash |
docker exec -it 容器名称/容器ID 执行的命令 | 直接在容器内执行命令,执行完返回宿主主机终端 | docker exec -it a43b4d79c445 ls -l /sys 在容器内执行 ls -l /sys docker exec -it a43b4d79c445 /bin/bash 在容器内执行 /bin/bash ,也就是进入到了容器内部终端 | |
docker logs 容器名称/容器ID | 查看容器日志 | docker logs a43b4d79c445 | |
docker top 容器名称/容器ID | 查看容器进程 | docker top a43b4d79c445 | |
docker cp 需要拷贝的文件或者目录 容器名称/容器ID:容器目录 | 宿主主机文件拷贝到容器内 | docker cp /home/wong/test_docker/ a43b4d79c445:/tmp | |
docker cp 容器名称/容器ID:容器目录 宿主机目录 | 容器内拷贝到宿主主机文件 | sudo docker cp mycentos01:/tmp/test_docker /home/wong/Desktop/ |
五、Docker容器宿主机端口映射命令
命令 | 功能 | 可选参数 | 举例说明 |
---|---|---|---|
docker run -it -p 主机(宿主)端口:容器端口 镜像名称/镜像ID | 宿主机端口映射 | -p: 指定端口映射,格式:主机端口:容器端口 -P: 随机端口映射,容器内部端口映射到主机端口 | docker run -it -p 8888:8080 tomcat 通过本机访问 http:://localhost:8888 就可以访问内部的应用 |
docker exec -it 容器名称/容器ID /bin/bash | 进入容器执行命令 | docker exec -it a43b4d79c445 /bin/bash 在容器内执行 /bin/bash ,也就是进入到了容器内部终端 | |
docker commit -a=‘作者’ -m=‘备注’ 正在运行的容器ID 新镜像名称[:TAG] | 提交运行时容器成为镜像 | docker commit -a=‘wong’ -m=‘tomcat without logo’ 3b80ae63ec54 mynewtomcat | |
docker push 镜像名称:版本名称 | 推送镜像到dockerpub服务器 | docker push mynewtomcat:1.1 把自己的镜像推送到服务器 | |
docker run -it -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名/镜像ID | docker 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器的目录进行映射,这样我们就可以实现宿主机和容器目录数据的自动同步。我们通过容器目录挂载,能够实现代码上传,配置修改,日志同步等需求。 | 挂载单个目录: docker run -it -v /home/wong/hData:/cData 8652b9f0cb4c 挂载多个目录: docker run -it -v /home/wong/aData:/aData -v /home/wong/bData:/bData 8652b9f0cb4c | |
docker run -it -v /宿主机目录:/容器目录:ro 镜像名/镜像ID | docker 容器目录挂载,只读,不能修改 |