569 字
3 分钟
Docker备忘
2025-10-22

docker compose#

部署的时候永远使用docker compose,不要管什么镜像/容器/仓库/网络了, 一切的操作都基于docker compose,一个compose就是一个服务集群,当然也能是单个服务 容器名一般是文件夹-服务名-数字不过说过了不要管容器了,只看compose本身就行了,易于移植

命令#

Terminal window
#这个docker compose命令只有在当前目录有compose文件的时候才能用
docker compose [-f compose路径] up #开发测试的时候一次性的,想要长期使用最好不要用,想退出用^c,^p+^q也行但是千万不要用
docker compose up -d #实际部署的时候用这个,启动整个服务集群,docker会一直后台运行这个服务的主进程
docker compose down [服务名] #删除容器,重新up的时候还得重新创建网络和卷
docker compose stop [服务名] #只是停止容器,不删除,compose不改的话,就不会重建容器
docker compose logs -f [服务名] #查看日志
docker cp <服务名>:/[路径]
docker compose exec <服务名> sh #进入正在后台运行的服务容器内
docker compose exec <服务名> [指令] #直接在bash运行指令但不进入
docker compose ps #列出当前compose在运行什么服务

docker-compose.yml#

version: '3.8'
services:
mc: #服务名
image: eclipse-temurin:21-jre-alpine #可以指定镜像,把需要的环境预装上去,比如系统和java。
container_name: minecraft-server #可以没有,有服务名会自动生成,现式指定,可以固定他
volumes:
- ./data:/data # 主机:容器
working_dir: /data # 设置工作目录 docker exec和下面command执行的路径
command: java -Xms4G -Xmx4G -jar paper-1.21.11-88.jar --nogui
# 交互功能
tty: true
stdin_open: true
# 端口映射到主机
ports:
- "25565:25565" #也是主机:容器
---------上面就是最简单的安装java环境的容器,服务器核心可以放在主机的data路径上,被挂载出来了,不挂出来,容器没了服务器就没了--------
restart: unless-stopped #自动重启
# 网络设置
networks:
- mc-network
# 用户权限
user: "1000:1000"
#资源配置
deploy:
replicas: 5 #可以创建5个实例(容器)
mc2:#另一个服务
省略

转自

Docker备忘
https://blog.cannian.space/posts/2025-10-22-docker/
作者
Cannian
发布于
2025-10-22
许可协议
CC BY-NC-SA 4.0