【问题标题】:How do I emulate this "docker run" command in a docker-compose.yml?如何在 docker-compose.yml 中模拟这个“docker run”命令?
【发布时间】:2022-01-22 04:38:03
【问题描述】:

docker 运行命令

我正在使用以下命令来启动 Docker 容器。

    docker run -it --rm -d -p 8080:80 \
        -v ~/dev/react-using-camera/.nginx-conf-for-container/conf.d:/etc/nginx/conf.d \
        -v ~/dev/nginx-test-area:/usr/share/nginx/html/ \
        --name web \
        nginx:stable-alpine

命令运行良好:

  • 容器启动;
  • nginx 响应请求并
  • nginx 使用的配置和网页是由“-v”参数定义的主机目录中存在的那些。

使用'docker-compose up'

我想通过使用docker-compose up来达到同样的效果,所以我写了以下docker-compose.yml

version: "3.7"
services:
  ingress:
    image: nginx:stable-alpine
    container_name: docker-compose-test-0
    networks:
      - gateway
    ports:
      - '8080:80'
    restart: unless-stopped
    volumes:
      - /home/glaucon/dev/react-using-camera/.nginx-conf-for-container/conf.d:/etc/nginx/conf.d
      - /home/glaucon/dev/nginx-test-area:/usr/share/nginx/html/ \

networks:
  gateway: {}

当我将该文件与 docker-compose up 一起使用时:

  • 容器启动
  • nginx 响应请求但是
  • 提供的 Web 内容不是存在于主机上的 /home/glaucon/dev/nginx-test-area 中,而是提供了 nginx 默认的 index.html

问题

如何在docker-compose up 的上下文中模拟在docker run 命令中使用“-v”参数?

【问题讨论】:

  • 您是否尝试删除第二卷挂载上的\?
  • @Turing85 啊啊啊!我已经看了很长时间了……谢谢。您会将您的评论变成答案,我可以将其标记为答案吗?非常感谢您的帮助。

标签: docker nginx docker-compose


【解决方案1】:

第二个volume-definition 有一个尾部反斜杠:

services:
  ingress:
    ...
    volumes:
      ...
      - /home/glaucon/dev/nginx-test-area:/usr/share/nginx/html/ \

如果我们删除尾部反斜杠:

services:
  ingress:
    ...
    volumes:
      ...
      - /home/glaucon/dev/nginx-test-area:/usr/share/nginx/html/

它应该按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2016-06-01
    • 2019-01-23
    • 2020-12-26
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多