Docker常用命令大全,新手必看

前言

Docker现在用得越来越多,但很多新手记不住命令。本文整理了最常用的Docker命令,收藏起来随用随查。

一、镜像相关命令

拉取镜像

docker pull nginx:latest

查看本地镜像

docker images

删除镜像

docker rmi 镜像ID

强制删除镜像

docker rmi -f 镜像ID

搜索镜像

docker search nginx

二、容器相关命令

查看运行中的容器

docker ps

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

docker ps -a

启动容器

docker start 容器名/容器ID

停止容器

docker stop 容器名/容器ID

重启容器

docker restart 容器名/容器ID

删除容器

docker rm 容器名/容器ID

强制删除运行中的容器

docker rm -f 容器名/容器ID

进入容器

docker exec -it 容器名/容器ID /bin/bash

查看容器日志

docker logs 容器名/容器ID

实时查看日志

docker logs -f 容器名/容器ID

查看容器详细信息

docker inspect 容器名/容器ID

查看容器IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名

查看容器资源占用

docker stats

三、运行容器

后台运行

docker run -d --name mynginx -p 80:80 nginx

参数解释:

  • -d:后台运行
  • --name:容器名
  • -p:端口映射(宿主端口:容器端口)

运行并进入容器

docker run -it ubuntu /bin/bash

挂载目录

docker run -d -v /host/path:/container/path nginx

环境变量

docker run -e MYSQL_ROOT_PASSWORD=123456 mysql

自动重启

docker run --restart=always -d nginx

四、清理命令

停止所有容器

docker stop $(docker ps -q)

删除所有停止的容器

docker container prune

删除所有未使用的镜像

docker image prune -a

一键清理

docker system prune -a

五、Docker Compose命令

启动

docker-compose up -d

停止

docker-compose down

查看状态

docker-compose ps

查看日志

docker-compose logs -f

重启

docker-compose restart

六、常用场景

运行MySQL

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /data/mysql:/var/lib/mysql \
  mysql:5.7

运行Nginx

docker run -d \
  --name nginx \
  -p 80:80 \
  -v /www:/usr/share/nginx/html \
  nginx

运行Redis

docker run -d \
  --name redis \
  -p 6379:6379 \
  redis:alpine

七、常见坑

坑1:容器启动后马上退出

原因: 容器没有前台进程。

解决: 加-it或者tail -f /dev/null。

坑2:端口映射不对

问题: 容器里跑的是80端口,映射成了8080:80。

解决: 确认容器内端口和宿主机端口。

坑3:数据丢失

问题: 容器删了数据就没了。

解决: 一定要挂载数据卷-v。

坑4:镜像太大

解决: 用alpine版本,比如redis:alpine。

八、命令速查表

功能 命令
查看运行中容器 docker ps
查看所有容器 docker ps -a
查看镜像 docker images
拉取镜像 docker pull 镜像名
运行容器 docker run -d --name 名字 -p 端口:端口 镜像
进入容器 docker exec -it 名字 /bin/bash
查看日志 docker logs -f 名字
停止容器 docker stop 名字
删除容器 docker rm 名字
删除镜像 docker rmi 镜像ID
清理 docker system prune -a

总结

记住:

  1. docker ps看容器
  2. docker images看镜像
  3. docker run启动容器
  4. docker exec -it进入容器
  5. docker logs -f看日志
  6. docker system prune清理

最常用:

docker ps
docker images
docker exec -it 容器名 /bin/bash
docker logs -f 容器名

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-9 07:53 

Docker 入门:从容器到 Compose 的实战教程

前言

Docker 现在已经是后端开发的标配工具了。很多人听说过 Docker,但不知道它到底是什么、怎么用。本文用最通俗的方式,带你从零开始掌握 Docker 的核心用法。

一、Docker 是什么

简单来说,Docker 就是把你的应用和它依赖的所有东西(代码、运行时、系统库、配置文件)打包到一个"集装箱"里,然后这个集装箱可以在任何机器上运行。

和虚拟机的区别:虚拟机是模拟一整套操作系统,Docker 容器是共享宿主机的内核,所以更轻量、启动更快。

二、核心概念

  • 镜像(Image):相当于模板,只读的,用来创建容器
  • 容器(Container):镜像运行起来的实例,可以创建、启动、停止、删除
  • Dockerfile:用来构建镜像的脚本文件
  • 仓库(Registry):存放镜像的地方,比如 Docker Hub

三、常用命令

1. 镜像操作

# 拉取镜像
docker pull nginx:latest

# 查看本地镜像
docker images

# 删除镜像
docker rmi nginx:latest

2. 容器操作

# 运行容器
docker run -d -p 80:80 --name my-nginx nginx

# 查看运行中的容器
docker ps

# 查看所有容器(包括停止的)
docker ps -a

# 停止容器
docker stop my-nginx

# 启动容器
docker start my-nginx

# 删除容器
docker rm my-nginx

# 查看容器日志
docker logs my-nginx

# 进入容器内部
docker exec -it my-nginx /bin/bash

关键参数说明:

  • -d:后台运行
  • -p 80:80:端口映射,宿主机端口:容器端口
  • --name:给容器起个名字

四、Dockerfile 实战

写一个简单的 PHP 应用镜像:

# 基于 PHP 官方镜像
FROM php:7.4-fpm

# 设置工作目录
WORKDIR /var/www/html

# 复制项目文件
COPY . .

# 安装依赖
RUN docker-php-ext-install pdo_mysql

# 暴露端口
EXPOSE 9000

# 启动命令
CMD ["php-fpm"]

构建镜像:

docker build -t my-php-app .

运行容器:

docker run -d -p 9000:9000 my-php-app

五、Docker Compose 实战

当你需要同时运行多个容器(比如 PHP + MySQL + Nginx),手动一个个启动太麻烦了。Docker Compose 就是用来编排多个容器的。

创建 docker-compose.yml 文件:

version: '3'

services:
  # PHP 应用
  app:
    build: .
    container_name: php-app
    volumes:
      - ./:/var/www/html
    networks:
      - app-network

  # MySQL 数据库
  db:
    image: mysql:5.7
    container_name: mysql-db
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: myapp
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - app-network

  # Nginx 反向代理
  nginx:
    image: nginx:alpine
    container_name: nginx-web
    ports:
      - "80:80"
    volumes:
      - ./:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    networks:
      - app-network

volumes:
  dbdata:

networks:
  app-network:
    driver: bridge

启动所有服务:

docker-compose up -d

停止所有服务:

docker-compose down

六、常见问题

1. 容器启动后立刻退出

通常是因为启动命令有问题。用 docker logs 查看日志:

docker logs container_name

2. 数据持久化

容器删除后数据就没了,需要用 volumes 来持久化:

docker run -v /host/path:/container/path mysql

3. 进入容器排查问题

docker exec -it container_name /bin/bash

总结

Docker 的核心思路:

  1. 镜像:打包应用和依赖
  2. 容器:镜像的运行实例
  3. Dockerfile:构建镜像的脚本
  4. Docker Compose:多容器编排

掌握这些,你就可以用 Docker 来部署你的 Web 应用了。Docker 最大的好处就是"一次构建,到处运行",再也不会出现"我电脑上是好的"这种问题了。


emer 发布于  2026-10-4 10:02 
'); })();