docker

Created: 25 Mar 2026

Author:  Chen Xie

基本信息

安装

docker Windows安装

安装前置条件

安装步骤

默认安装:双击安装包

image

指定Docker安装目录

start /w "" "Docker Desktop Installeer.exe" install --installation-dir=D:\Docker

配置国内镜像

增加内容

  "insecure-registries": null,
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]

Windows

Linux:vim /etc/docker/daemon.json

Docker Mac安装

官方文档:https://docs.docker.com/desktop/setup/install/mac-install/

基本使用

搜索及拉取镜像

#搜索包
docker search [packageName]

#下载镜像
docker pull [authorName]/[packageName]:[标签名]

#以MaxKB为例
docker pull 1panel/maxkb:

#如果是官方镜像,可省缺[authorName]
docker pull nginx:latest

image

删除本地镜像

#列出本地镜像
docker image ls

#删除镜像,以下二选一
docker image rm [IMAGE ID前三位]
docker image rm [仓库名:标签]

docker run命令

常用参数

# 以MaxKb安装为例
docker run -d --name=maxkb --restart=always -p 8098:8080 -v D:\maxkb:/var/lib/postgresql/data -v D:\maxkb\python-packages:/opt/maxkb/app/sandbox/python-packages 1panel/maxkb:latest

image

image

docker容器查看、停止、启动、删除容器

# 列举正在运行的镜像
docker ps

# 停止制定容器
docker stop [containerName]

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

# 启动容器
docker start [containerName]

# 删除容器 docker rm只能删除停止的容器
docker stop  [containerName]
docker rm [containerName]

# 删除运行中的容器
docker rm -f [containerName]

# 批量删除已停止的容器
docker prune

docker exec 命令

#进入容器
docker exec -it [containerID] /bin/bash

#退出容器
exit

docker compose

检查docker-compose的安装及版本

Docker Desktop for Mac/Windows自带

docker-compose --version

docker compose命令

#默认使用 ./docker-compose.yml文件
docker-compose up 

#后台运行,加-d
docker-compose up -d

#指定文件
docker-compose -f ./docker/server.yml up -d 

docker-compose.yml文件详解

以Docker-Compose跑一个Nginix、DB为例

version: '3'
services:
  web:
    image: nginx:latest
    container_name: nginx_container
    ports:
      - "8080:80"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/certs:/etc/nginx/certs
      - ./app:/usr/share/nginx/html
      - ./nginx/logs:/var/log/nginx
    restart: always

  db:
    image: postgres:15
    container_name: db_container
    environment:  # 环境变量
      POSTGRES_PASSWORD: example

docker Network

如果容器之间通信,需要制定Network参数

version: '3'
services:
  web:
    image: nginx:latest
    container_name: nginx_container
    ports:
      - "8080:80"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/certs:/etc/nginx/certs
      - ./app:/usr/share/nginx/html
      - ./nginx/logs:/var/log/nginx
    restart: always
	networks:
	  - backend

  db:
    image: postgres:15
    container_name: db_container
    environment:  # 环境变量
      POSTGRES_PASSWORD: example
	networks:
	  - backend

networks:
	backend:
# docker