569 字
3 分钟
Docker备忘
docker compose
部署的时候永远使用docker compose,不要管什么镜像/容器/仓库/网络了,
一切的操作都基于docker compose,一个compose就是一个服务集群,当然也能是单个服务
容器名一般是文件夹-服务名-数字不过说过了不要管容器了,只看compose本身就行了,易于移植
命令
#这个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:#另一个服务 省略
转自