标签: docker-compose

如何在docker compose中将主机目录挂载为卷

我有一个开发环境,我是dockerizing,我希望能够重新生成我的更改,而无需重建docker镜像.我正在使用docker compose,因为redis是我应用程序的依赖项之一,我喜欢能够链接redis容器

我有两个容器定义docker-compose.yml:

node:
    build: ./node
    links:
        - redis
    ports:
        - "8080"
    env_file:
        - node-app.env

redis:
    image: redis
    ports:
        - "6379"
Run Code Online (Sandbox Code Playgroud)

我已经在我的node应用程序的dockerfile中添加了一个卷,但是如何在卷中安装主机的目录,以便我对代码的所有实时编辑都反映在容器中?

这是我当前的Dockerfile:

# Set the base image to Ubuntu
FROM    node:boron

# File Author / Maintainer
MAINTAINER Amin Shah Gilani <amin@gilani.me>

# Install nodemon
RUN npm install -g nodemon

# Add a /app volume
VOLUME ["/app"]

# TODO: link the current . to /app

# Define working directory
WORKDIR /app

# Run npm install
RUN …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-volume

94
推荐指数
6
解决办法
12万
查看次数

带有容器日志的日志文件在哪里?

我正在运行几个容器docker-compose.我可以通过命令查看应用程序日志docker-compose logs.但是,我想访问原始日志文件,例如将其发送到某个地方?它在哪里?我猜这是每个容器(内部容器?)的单独日志,但我可以在哪里找到它?

docker docker-compose

93
推荐指数
4
解决办法
9万
查看次数

Docker Compose 提示错误:没有提供配置文件:未找到

docker compose我已经使用 Windows WSL 集成版本 2 设置了 Docker Desktop,但在执行某些命令并出现以下错误时遇到了问题

docker compose logs
no configuration file provided: not found
Run Code Online (Sandbox Code Playgroud)

但执行以下命令时并没有发现问题

docker compose up
Run Code Online (Sandbox Code Playgroud)

图像已成功构建并启动。

有没有人可以帮忙解决这个问题?


输出docker info

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.7.1)
  compose: Docker Compose (Docker Inc., v2.2.1)
  scan: Docker Scan (Docker Inc., 0.9.0)

Server:
 Containers: 3
  Running: 3
  Paused: 0
  Stopped: 0
 Images: 4
 Server Version: 20.10.11
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose windows-subsystem-for-linux docker-desktop

93
推荐指数
2
解决办法
20万
查看次数

docker-compose up vs docker-compose up --build vs docker-compose build --no-cache

我无法弄清楚那些之间的区别.

  • docker-compose up

  • docker-compose up --build

  • docker-compose build --no-cache

up没有缓存有没有命令?

docker docker-compose

91
推荐指数
1
解决办法
4万
查看次数

如何使用docker-compose标记docker镜像

我想通过docker-compose构建图像并为其设置特定标记.文件说:

Compose将使用生成的名称构建并标记它,然后使用该图像.

但我找不到指定标签的方法,对于构建的图像,我总是看到'最新'标签.

docker docker-compose

89
推荐指数
7
解决办法
8万
查看次数

无法链接到由docker-compose启动的正在运行的容器

我正在使用docker容器设置我的本地开发环境.docker-compose.yml如下所示

version: '2'

services:
  db:
    image: mongo:3
  mq:
    image: rabbitmq:3
  api:
    build: .
    image: my_app/api
    ports:
      - "3000:3000"
    links:
      - db
      - mq
    environment:
      - NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)

它开始没有错误.而docker列出了3个正在运行的容器

docker-compose up -d
docker ps

e90e5a8b5d33        my_app/api    "/usr/local/bin/node "   0.0.0.0:3000->3000/tcp               my_app_api_1
42bfcd971b16        mongo:3       "/entrypoint.sh mongo"   27017/tcp                            my_app_db_1
a0685a816c47        rabbitmq:3    "/docker-entrypoint.s"   4369/tcp, 5671-5672/tcp, 25672/tcp   my_app_mq_1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试链接到那些从另一个容器运行容器时

docker run --link my_app_mq_1:mq --link my_app_db_1:db -it worker 
Run Code Online (Sandbox Code Playgroud)

我收到错误

 docker: Error response from daemon: Cannot link to /my_app_mq_1, as it does not belong to the default network.
Run Code Online (Sandbox Code Playgroud)

我也试过了 …

docker docker-compose

89
推荐指数
2
解决办法
4万
查看次数

如何在Docker Compose中设置主机名?

在我的docker-compose.yml文件中,我有以下内容.但是容器不会获取主机名值.有任何想法吗?

dns:
  image: phensley/docker-dns
  hostname: affy
  domainname: affy.com
  volumes:
    - /var/run/docker.sock:/docker.sock
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

88
推荐指数
5
解决办法
12万
查看次数

如何正确链接php-fpm和Nginx Docker容器?

我想链接2个单独的容器:

问题是PHP脚本不起作用.也许php-fpm配置不正确.这是源代码,位于我的存储库中.这是文件docker-compose.yml:

nginx:
    build: .
    ports:
        - "80:80"
        - "443:443"
    volumes:
        - ./:/var/www/test/
    links:
        - fpm
fpm:
    image: php:fpm
    ports:
        - "9000:9000"
Run Code Online (Sandbox Code Playgroud)

Dockerfile我使用了基于nginx的一个建立一个自定义图像:

FROM nginx

# Change Nginx config here...
RUN rm /etc/nginx/conf.d/default.conf
ADD ./default.conf /etc/nginx/conf.d/
Run Code Online (Sandbox Code Playgroud)

最后,这是我的自定义Nginx虚拟主机配置:

server {
    listen  80;

    server_name localhost;
    root /var/www/test;

    error_log /var/log/nginx/localhost.error.log;
    access_log /var/log/nginx/localhost.access.log;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/.+\.php(/|$) {
        fastcgi_pass 192.168.59.103:9000;
        fastcgi_split_path_info …
Run Code Online (Sandbox Code Playgroud)

php nginx docker dockerfile docker-compose

86
推荐指数
6
解决办法
12万
查看次数

Docker编写,在net:host中运行容器

我想使用docker-compose在"主机"网络中生成3个服务.这是我的docker-compose.yml文件:

version: '2'
services:
  mysql:
    image: mysql
    net: "host"
  nginx:
    image: nginx
    net: "host"
  app:
    image: tomcat
    net: "host"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

$ docker-compose up
[31mERROR[0m: Validation failed in file '.\docker-compose.yml', reason(s):
Unsupported config option for services.app: 'net'
Unsupported config option for services.mysql: 'net'
Unsupported config option for services.nginx: 'net'
Run Code Online (Sandbox Code Playgroud)

我在windows上使用boot2docker.

Docker和Docker-compose版本:

$ docker -v
Docker version 1.10.2, build c3959b1
$ docker-compose -version
docker-compose version 1.6.0, build cdb920a
Run Code Online (Sandbox Code Playgroud)

如果我通过使用手动运行所有服务docker run --net = "host"工作正常.

在文档中,我读到了docker-compose支持net命令:

网络模式.使用与docker client …

docker boot2docker docker-compose

84
推荐指数
4
解决办法
15万
查看次数

无法使用前端 DockerFIle.v0 解决

我试图为我的 Gatsby 应用程序构建我的 Docker 映像。每当我运行命令时 docker build . -t gatsbyapp,它都会给我一个错误:

failed to solve with frontend dockerfile.v0: failed to build LLB:
failed to compute cache key: "/.env" not found: not found
Run Code Online (Sandbox Code Playgroud)

同时我的 Dockerfile 如下所示:

FROM node:13

WORKDIR /app

COPY package.json .

RUN yarn global add gatsby-cli

RUN yarn install

COPY gatsby-config.js .

COPY .env .

EXPOSE 8000

CMD ["gatsby","develop","-H","0.0.0.0"]
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose gatsby

84
推荐指数
20
解决办法
14万
查看次数