Docker 入门:安装与常用命令

📅 2026-10-13 20:40 👤 ajie2012 📁 服务器运维 👁 1 阅读

Docker 让”在我机器上能跑”成为历史。把应用和环境打包成镜像,丢到哪台机器都能跑起来。

一、Docker 是什么

传统方式:装应用要先装依赖,A 机器能跑,B 机器缺个库就报错。

Docker 方式:把应用+依赖+配置打成一个镜像,镜像启动后叫容器。镜像在哪,应用就在哪跑,一模一样。

镜像 vs 容器:镜像是只读的模板(像安装包),容器是运行中的实例(像装好的软件)。一个镜像可以启动多个容器。

二、安装(Ubuntu)

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
docker --version    # 验证安装

把当前用户加入 docker 组,免 sudo:

sudo usermod -aG docker $USER
# 重新登录生效,或执行:
newgrp docker

三、跑第一个容器

docker run hello-world

这行命令做了 4 件事:本地没镜像 → 去 Docker Hub 下载 → 启动容器 → 输出 Hello 后退出。

跑一个长期运行的 Nginx:

docker run -d --name my-nginx -p 8080:80 nginx

参数解释:

  • -d:后台运行
  • --name my-nginx:给容器起名字
  • -p 8080:80:把宿主机的 8080 端口映射到容器的 80 端口
  • nginx:用的镜像名

浏览器打开 http://服务器IP:8080,看到 Nginx 欢迎页。

四、常用命令

docker ps              # 看运行中的容器
docker ps -a           # 看所有容器(含停止的)
docker images          # 看本地镜像
docker stop my-nginx   # 停止容器
docker start my-nginx  # 启动已停止的容器
docker restart my-nginx# 重启
docker rm my-nginx     # 删除容器(先 stop)
docker rmi nginx       # 删除镜像
docker logs my-nginx   # 看容器日志
docker exec -it my-nginx bash   # 进容器里执行命令

五、数据持久化:Volume

容器删了,里面的数据就没了。用 -v 把宿主机目录挂载进容器,数据存在宿主机上:

docker run -d --name my-nginx \
  -p 8080:80 \
  -v /host/path:/usr/share/nginx/html \
  nginx

这样 /host/path 里放的网页文件,容器里的 Nginx 就能 serve 出来。容器删了文件还在。

六、Docker Compose(多容器)

一个应用要多个容器配合(比如 WordPress + MySQL),用 compose 一次编排:

sudo apt install docker-compose -y
# docker-compose.yml
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: 123456
docker-compose up -d    # 启动
docker-compose down     # 停止并删除

七、清理

docker system prune    # 清理停止的容器、无用镜像、网络
docker system prune -a # 连没用的镜像一起清(慎用)

什么时候用 Docker

  • ✅ 快速部署应用,不想折腾环境
  • ✅ 一台机器跑多个隔离的应用
  • ✅ 开发测试环境与生产一致
  • ❌ 对性能极度敏感的场景(有轻微 overhead)
  • ❌ 1G 小内存机器跑太多容器(每个容器都占内存)

本文为杰哥的折腾笔记原创教程,转载请注明出处。

发表评论