Docker常用命令
- Docker 服务核心命令
- 镜像核心命令
- 容器核心命令
Docker 服务核心命令
查看 Docker 版本
docker version

查看 Docker 系统详情
docker info

重新加载 Docker 配置
systemctl daemon-reload
开启 Docker 服务
systemctl start docker
镜像核心命令
搜索 Docker Hub 上的镜像(比如nginx)
docker search nginx
拉取镜像
docker pull nginx

查看本地所有可用的镜像
docker images

REPOSITORY:镜像仓库名 TAG:镜像标签(版本) IMAGE ID:镜像 ID(完整 ID 前 12 位,唯一标识镜像) CREATED:镜像创建时间 SIZE:镜像大小
显示本地所有镜像
docker images -a

只显示镜像的id
docker images -q

显示镜像的摘要信息
docker images –digests

输出新增 DIGEST 列(镜像摘要),摘要是镜像的唯一哈希值,摘要用于精准标识镜像版本,避免 TAG 混淆。
显示完整镜像 ID 信息
docker images –no-trunc

删除指定镜像(需先确保镜像未被容器占用,否则需要加 -f 强制删除)
docker rmi nginx:latest # 按镜像名:标签删除
docker rmi 605c77e624dd # 按镜像ID删除

容器核心命令
容器是镜像的运行实例,业务服务运行在容器中,这是 Docker 最常用的操作场景。
创建并启动容器
docker run -it –name my-nginx -p 80:80 nginx:latest
核心参数: -d:后台运行(守护进程,不占终端); -it:交互式终端(i 保持容器一直运行,t 用于给容器一个伪终端); -p:端口映射(宿主机:容器); -v:数据卷挂载(持久化数据,宿主机路径:容器路径); –name:自定义容器名称(避免随机名,方便管理)。
通过 -it 启动的容器是交互式容器:容器创建后会直接进入交互式终端,输入 exit 退出终端时,容器的主进程会终止,容器随之停止运行。 通过 -d 创建的容器是守护式容器:用 -d 启动容器时,容器会在后台运行,不会直接进入终端,若进入后台容器的终端后输入 exit 退出时,只是关闭了容器的终端会话,容器的主进程仍在运行,容器不会停止。

执行该命令时,Docker 会优先从本地镜像仓库中查找 nginx:latest 镜像;如果本地未找到该镜像,会从 Docker 守护进程配置的镜像源(默认是 Docker Hub,若配置了阿里云等镜像加速源则优先从加速源)拉取;若所有配置的镜像源都未找到该镜像,则会抛出 “找不到镜像” 的错误,若成功获取镜像,Docker 会立即基于该镜像创建并启动容器。
查看正在运行的容器
docker ps

查看所有容器
docker ps -a
显示容器 ID
docker ps -q
交互式进入运行中的容器
docker exec -it [CONTAINER ID] bash
如果容器没有bash,用 sh 进入运行中的容器
docker exec -it [CONTAINER ID] sh

Docker 容器内部看似轻量级 Linux 操作系统,本质是容器会共享宿主机的 Linux 内核,同时镜像中自带了精简的 Linux 用户空间(包含标准目录结构、基础命令、系统依赖库等运行环境),并且封装了应用运行所需的全部依赖,这使得容器在使用时呈现出完整、独立且轻量化的 Linux 系统体验。
启动已停止的容器
docker start my-nginx
获取指定 Docker 资源的完整且详细的元数据信息
docker inspect my-nginx

“IPAddress”: “172.17.0.2” 即 Docker 容器的 IP 地址 172.17.0.2 curl 是命令行工具,用于向指定地址发送 HTTP/HTTPS 请求,容器内部与运行 Docker 的宿主机能直接访问这个 IP,但宿主机之外的其他机器无法直接访问。例如访问容器内80端口的Nginx服务:
curl 172.17.0.2:80

在服务器防火墙中放行 80 端口且云服务器安全组开放 80 端口后,访问 服务器公网ip地址:80,即可访问到容器80端口所对应的内容

停止运行中的容器
docker stop my-nginx
重启容器
docker restart my-nginx
删除已停止的容器
docker rm my-nginx
强制删除运行中的容器(不推荐,先stop再rm)
docker rm -f my-nginx
Docker 数据卷
Docker 容器的文件系统默认与容器生命周期绑定,容器销毁时,其内部存储的所有数据会被彻底清除,无法保留。 挂载(包括数据卷挂载 Volume、绑定挂载 Bind Mount)是 Docker 实现数据持久化的核心方式,本质是将宿主机的文件 / 目录与容器内指定路径建立双向实时同步映射: 数据同步性:宿主机对挂载路径的文件修改会即时同步到容器内,容器内产生的日志、数据变更也会同步回宿主机; 数据持久性:容器删除 / 重建后,宿主机挂载路径下的网页、配置、日志等数据不会丢失,实现数据与容器解耦; 管理便捷性:无需进入容器内部,直接在宿主机即可完成 Nginx 网页编辑、配置修改、日志查看等操作,提升运维效率。
创建挂载目录:
mkdir -p /usr/local/src/docker/data/nginx/{conf.d,html,logs}
touch /usr/local/src/docker/data/nginx/conf/nginx.conf
-p 表示递归创建目录,{conf.d,html,logs} 是 Shell 批量创建语法,等价于手动创建三个子目录,简化命令输入 Docker 挂载要求宿主机文件 / 目录类型与容器内一致,容器内 /etc/nginx/nginx.conf 是文件,所以需要在 conf 目录下创建空的 nginx.conf 文件
启动容器
docker run –name nginx81 -d -p 81:80 \\
-v /usr/local/src/docker/data/nginx/html:/usr/share/nginx/html \\
-v /usr/local/src/docker/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\
-v /usr/local/src/docker/data/nginx/conf.d:/etc/nginx/conf.d \\
-v /usr/local/src/docker/data/nginx/logs:/var/log/nginx nginx
-v 宿主机路径:容器内路径:绑定挂载,建立宿主机与容器的双向同步映射

根据当前容器制作自定义镜像
docker commit 是将容器(包含所有修改)打包为新镜像的核心命令,本质是提交容器的当前状态副本,使之成为可复用的新镜像。 需要注意的是生产环境慎用 docker commit,无法追溯镜像内具体改了什么,且会包含容器临时文件,镜像体积膨胀,生产环境优先使用 Dockerfile 制作镜像。
命令:docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
基于 Tomcat 容器的完整实操流程:
拉取官方 Tomcat 基础镜像,获取启动容器的基础环境
docker pull tomcat
启动 Tomcat 容器
docker run -p 8081:8080 -d tomcat
进入容器交互终端
docker exec -it 3a06b4c779a8 bash
在容器内创建自定义测试页面:依次执行
cd webapps #进入Tomcat 默认网页根目录
mkdir testPage #创建自定义页面目录
cd testPage #进入该目录
touch index.html #创建空白网页文件
echo "test" >>index.html #向文件写入测试内容
制作自定义镜像:退出容器后执行
docker commit -m="新增Tomcat自定义testPage测试页面" -a="作者信息" 3a06b4c779a8 my-tomcat:v1
将修改后的容器打包为名为 my-tomcat、标签为 v1 的新镜像
启动新容器
docker run -p 8088:8080 -d my-tomcat:v1
开启 8088 端口的防火墙后,访问 宿主机IP:8088/testPage/index.html 即可看到 “test” 内容,说明原容器的修改已固化到新镜像中。

网硕互联帮助中心




评论前必须登录!
注册