【docker】#2 | 基础命令

摘要:Docker 核心围绕镜像 与容器两大对象,本文整理 Docker 常用基础命令,包含镜像拉取、构建、导出导入,容器创建启停、进入、删除,附带 Nginx 完整实操案例,适合后端入门复习。

一、Docker 核心概念

Docker 的核心功能就是操作镜像 (image) 和容器 (container)

  • 镜像:模板,只读,用来创建容器(类似系统安装包)
  • 容器:镜像运行起来的实例,可读可写(类似运行中的虚拟机)

二、镜像相关命令

  1. 从镜像仓库拉取镜像

    docker pull 镜像名

  2. 查看本地全部镜像

    docker images

  3. 删除本地镜像

    docker rmi 镜像名:标签

  4. 自定义镜像:通过 Dockerfile 构建镜像

    docker build

构建完成后可以push推送到镜像仓库,同事就可以直接pull拉取使用。

  1. 镜像导出(保存为 tar 压缩包)

    docker save -o nginx.tar nginx:latest

  2. 导入本地 tar 包恢复镜像

    docker load -i nginx.tar

提示:可以使用docker load --help查看 load 命令帮助文档。

三、容器相关命令

重点区分: docker run:新建容器并且启动 ,重复执行 run 会重复创建新容器 docker start:启动已经存在的容器,不能用来新建容器

  1. 创建并运行容器

    docker run

  2. 查看正在运行的容器

    docker ps

    查看所有容器(包含已停止的)

    docker ps -a

  3. 停止正在运行的容器

    docker stop 容器名/容器ID

  4. 启动已经存在、处于停止状态的容器

    docker start 容器名/容器ID

  5. 查看容器运行日志

    docker logs 容器名

  6. 进入容器内部(交互式终端,可修改容器内文件)

    docker exec -it 容器名 bash

  7. 删除容器

注意:运行中的容器不能直接 rm 删除

复制代码
# 方式1:先停止,再删除
docker stop 容器名
docker rm 容器名

# 方式2:强制删除(不管容器是否正在运行)
docker rm -f 容器名

小贴士:遇到参数记不清,优先查阅官方文档。

四、综合实操案例:Nginx 完整流程

需求:在 DockerHub 搜索 Nginx 镜像 → 拉取镜像 → 查看本地镜像 → 创建运行 Nginx 容器 → 查看容器 → 停止容器 → 重启容器 → 进入容器 → 删除容器

复制代码
# 1.拉取nginx镜像
docker pull nginx

# 2.查看本地镜像列表
docker images

# 3.【可选】镜像打包备份
docker save -o nginx.tar nginx:latest

# 4.【可选】删除本地镜像,测试导入
docker rmi nginx:latest

# 5.【可选】从tar包恢复镜像
docker load -i nginx.tar
docker images

# 6.创建并后台运行nginx容器,端口映射80:80,命名nginx
docker run -d --name nginx -p 80:80 nginx

# 7.查看正在运行的容器
docker ps

# 8.停止nginx容器
docker stop nginx

# 9.重新启动已存在的nginx容器
docker start nginx

# 10.查看容器日志
docker logs nginx

# 11.进入nginx容器内部
docker exec -it nginx bash

# 12.删除容器(演示)
# 正常删除:先stop再rm
docker stop nginx
docker rm nginx
# 强制删除
# docker rm -f nginx

复习总结

  1. 镜像:pull拉取、images查看、rmi删除、build构建、save导出、load导入
  2. 容器:run新建启动、start启动已有容器、stop停止、ps查看、logs日志、exec进入容器、rm删除
  3. 重要区分:run是新建容器 ,不要多次 run 同一个镜像;运行中容器不能直接 rm,要么先 stop,要么rm -f强制删除。
相关推荐
程序员老赵3 小时前
Docker 部署 WordPress:轻松搭建开源内容管理平台
docker·开源·wordpress
sbjdhjd4 小时前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
Pocker_Spades_A6 小时前
Penpot自托管设计协作:Docker部署、MCP接入与Codex生成UI实操记录
ui·docker·容器
Lvan的前端笔记15 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
蜡笔婧萱16 小时前
Docker介绍及其基础简介(一)
云原生·eureka
sbjdhjd20 小时前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
热爱Liunx的丘丘人21 小时前
1、什么是K8s
云原生·容器·kubernetes
帷幕落秋1 天前
Docker的两种安装
运维·docker·容器