docoker是一只蓝色的小鲸鱼背上背了很多集装箱!

不知道你安装软件时有没有遇见这个情况某个软件版本高了导致你使用的软件无法运行

比如一个软件使用了python3,但是它可能只支持某一个版本段的python

如果该软件在你的电脑本地运行很显然如果你更新了最新版本python很可能导致该软件崩溃!oops!

还有就是你使用ubuntu他用Debian,他再用fedora,centos,你好不容易在一个操作系统安装了

一个软件难道在另一个操作系统再来一遍?

于是docker诞生了!

与操作系统不一样的是,操作系统虚拟的是物理硬件,而docker虚拟的是操作系统内核

你不需要为了隔离软件环境而装一个虚拟的操作系统只需要一个docker

1️⃣docker核心概念

名称

含义

类比

Image(镜像)

软件运行环境的模板

安装光盘

Container(容器)

镜像运行后的实例

已安装并运行的软件

Dockerfile

制作镜像的说明文件

软件安装配方

Volume(卷)

持久化存储数据

独立硬盘

Network(网络)

容器之间的通信网络

局域网

Compose

管理多个容器

项目管理器

Registry

存储和分发镜像

软件仓库

image就是安装源 container就是运行的实例 volume很重要你的docker可以删除volume持久化存数据保护数据

compose也很重要,比如搭建一个博客可能用到nginx和postgresql等多个软件就可以使用compose一下多运行

registry就是软件仓库

2️⃣安装docker

对于linux选手直接去官网找一下一键安装脚本执行就可以了

然后我们要安装的是docker ce也就是Docker Engine-Community

对于windows和macos可以新建Linux虚拟机或者使用docker desktop

3️⃣使用docker一键部署单个软件

docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=123456 \
  -p 5432:5432 \
  -v postgres_data:/var/lib/postgresql \
  postgres:18

4️⃣使用docker compose组合一个大软件

不知道咋说大软件意思就是一个博客前端和后端可能用到许多软件然后给他们整合起来

你可以用一个 docker-compose.yml 管理整个项目:

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"

  halo:
    image: halohub/halo:latest
    expose:
      - "8090"

  db:
    image: postgres:18
    environment:
      POSTGRES_PASSWORD: your_password
    volumes:
      - db_data:/var/lib/postgresql

volumes:
  db_data:

5️⃣docker的常见使用

一、查看 Docker 状态

命令

作用

docker version

查看 Docker 版本

docker info

查看 Docker 运行信息

docker system df

查看 Docker 磁盘占用

docker ps

查看正在运行的容器

docker ps -a

查看所有容器

docker images

查看本地镜像

docker network ls

查看网络

docker volume ls

查看数据卷

二、镜像管理(Image)

镜像相当于软件的安装模板。

命令

作用

docker pull nginx

下载 Nginx 镜像

docker pull postgres:18

下载指定版本

docker images

查看本地镜像

docker rmi nginx

删除镜像

docker image prune

删除未使用的悬空镜像

docker tag nginx mynginx:v1

给镜像添加标签

docker inspect nginx

查看镜像详细信息

三、容器管理(Container)

这是最常用的部分。

命令

作用

docker run

创建并启动容器

docker start

启动已有容器

docker stop

停止容器

docker restart

重启容器

docker rm

删除容器

docker ps

查看运行中的容器

docker ps -a

查看所有容器

docker exec

进入运行中的容器执行命令

docker logs

查看容器日志

docker inspect

查看容器详细信息

docker stats

查看容器资源占用

docker rename

修改容器名称

举例:创建并启动容器运行nginx

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

参数解释:

  • -d:后台运行。

  • --name:指定容器名称。

  • -p:映射端口。

  • nginx:使用的镜像。

四、Docker Compose(非常重要)

如果你要部署 Halo + PostgreSQL + Nginx

它可以通过一个 YAML 文件管理整个项目。

常见命令:

命令

作用

docker compose up -d

创建并后台启动服务

docker compose down

停止并删除容器和网络

docker compose ps

查看项目容器

docker compose logs

查看日志

docker compose logs -f

实时查看日志

docker compose restart

重启服务

docker compose stop

停止服务

docker compose start

启动已有服务

docker compose pull

拉取镜像更新

docker compose build

构建镜像

docker compose up -d --build

构建并启动

docker compose config

检查和展开配置

docker compose down -v

删除容器、网络和项目卷

就先到这里了,后面还有些网络,数据整理,垃圾清理,yaml配置以后再说吧