【问题标题】:How to make a docker-compose file from command lline如何从命令行制作 docker-compose 文件
【发布时间】:2020-01-19 12:32:05
【问题描述】:

我通过以下五个 Docker 命令运行我的容器:

  • docker run --privileged -d -v /root/docker/data:/var/lib/mysql -p 8888:80 testimg:2 init
  • docker ps ---> 获取容器ID
  • docker exec -it container_id bash
  • docker exec container_id systemctl start mariadb
  • docker exec container_id systemctl start httpd

我试图通过 docker-compose 执行这些步骤但失败了。

有人可以制作 docker-compose.yml 或 Dockerfile 来为我获得相同的结果吗?

【问题讨论】:

  • 我在另一个终端做了 4 和 5 步
  • 您遇到的错误是什么,添加有关错误的更多信息将有助于解决此问题。

标签: docker docker-compose


【解决方案1】:

您无法仅使用docker-compose.yml 来执行此操作,因为撰写文件没有任何类似于docker exec 的机制。此外,在容器内运行systemd(或实际上任何进程管理器)是一种反模式。它会使容器的管理和扩展变得复杂,并且在大多数情况下不会为您带来任何好处。

你为什么不只有两张图片:

  • mariadb 开头的
  • 一个启动Apache的httpd

这可能看起来像:

version: "3"

services:
  web:
    image: httpd
    ports:
      - "8888:80"

  db:
    image: mariadb
    volumes:
      - "/root/docker/data:/var/lib/mysql"

您可能需要一个包含您正在运行的任何应用程序的 Web 服务器的自定义图像,但您绝对可以为您的数据库使用官方 mariadb 图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多