2、Docker常用指令

一、docker-compose 启动

1、快速启动

命令 说明
docker compose up -d 最常用。在后台启动整个项目的所有服务。
docker compose ps 查看当前项目下所有容器的运行状态。
docker compose logs -f 实时查看项目日志(排错必用)。
docker run -d --name <名> <镜像> 启动一个独立的孤立容器(不属于 Compose 项目)。

2、快速关闭清理

A. 针对 Docker Compose 项目

开发者最容易堆积垃圾镜像和容器,这组指令是保持系统清爽的关键:

停止并删除项目中的容器、网络(但保留镜像和挂载的数据卷)

docker compose down

彻底删除:停止容器,并删除镜像、网络、以及【匿名数据卷】

docker compose down --rmi all -v

B. 针对单容器

停止容器

docker stop <容器ID或名称>

删除容器

docker rm <容器ID或名称>

删除镜像

docker rmi <镜像ID或名称>

二、Docker指定代理端口启动

1、启动模板

sudo docker run -d \
  --name <容器名称> \
  --restart always \
  -p <宿主机端口>:<容器端口> \
  -v <宿主机数据目录>:<容器数据目录> \
  -e TZ=Asia/Shanghai \
  -e HTTP_PROXY="http://<代理IP>:<端口>" \
  -e HTTPS_PROXY="http://<代理IP>:<端口>" \
  <镜像名>:latest

具体启动方式参考:

sudo docker run -d --restart always --name new-api \
  -p 3000:3000 \
  -v /home/ubuntu/new-api:/data \
  -e TZ=Asia/Shanghai \
  -e HTTP_PROXY="http://172.17.0.1:7897" \
  -e HTTPS_PROXY="http://172.17.0.1:7897" \
  -e NO_PROXY="localhost,127.0.0.1" \
  calciumion/new-api:latest

^f2855c

指令介绍: 172.17.0.1 是 Docker 默认分配给宿主机的 IP,7897是服务器clash代理的默认端口。

2、具体参数介绍

时区偏差、网络不通问题

参数 示例 说明
-e TZ -e TZ=Asia/Shanghai 时区同步:强制容器使用北京时间,避免日志时间错乱。
-e PROXY -e HTTP_PROXY="http://IP:PORT" 网络代理:解决容器内无法访问外部 API(如 OpenAI/GitHub)的问题。
-e NO_PROXY -e NO_PROXY="localhost,127.0.0.1" 排除代理:确保访问内网服务时不经过代理服务。

持久化与可靠性

参数 示例 说明
-v (Volume) -v /宿主机路径:/容器路径 数据挂载:将数据保存在宿主机,防止容器删除后数据丢失(数据库/配置文件必备)。
–restart --restart always 自动重启:宿主机重启或容器崩溃后,Docker 会自动拉起该容器。

3、Docker compose 对应语法

Docker Compose对应修改配置文件示例:

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - /home/ubuntu/new-api:/data
    environment:
      - TZ=Asia/Shanghai
      - HTTP_PROXY=http://172.17.0.1:7897
      - HTTPS_PROXY=http://172.17.0.1:7897
      - NO_PROXY=localhost,127.0.0.1

三、Docker 基本指令

查看所有当前正在运行的项目:

docker ps
Pasted image 20260327145538

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

docker ps -a

列出本地存储的所有镜像:

docker images

从远程仓库拉取项目:

docker pull

停止一个或多个容器:

docker stop container_name

开始容器:

docker start container_name

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Obsidian