标签: docker-compose

如何在docker-compose.yml中重建docker容器?

docker-compose.yml中定义了一系列服务.这些服务已经开始.我只需要重建其中一个并在没有其他服务的情况下启动它.我运行以下命令:

docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it still running !!!
docker-compose build --no-cache nginx 
docker-compose up -d --no-deps # link nginx to other services
Run Code Online (Sandbox Code Playgroud)

最后我得到了旧的nginx容器.顺便说一句,docker-compose不会杀死所有正在运行的容器!

docker docker-compose docker-container

153
推荐指数
10
解决办法
18万
查看次数

如何删除所有Docker本地Docker镜像

我最近开始使用Docker并且从未意识到我应该使用docker-compose down而不是ctrl-c或者docker-compose stop去除我的实验.我现在在本地有大量不需要的泊坞窗图像.

是否有一个标志我可以运行删除所有本地docker镜像和容器?

docker rmi --all --force--all标志不存在,但我正在寻找具有类似想法的东西.

docker docker-compose

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

无法从docker-compose连接到docker

我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0.
Docker-machine正常运行,可以通过docker-machine ssh连接.

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
dev    *        virtualbox   Running   tcp://192.168.99.100:2376   
Run Code Online (Sandbox Code Playgroud)

但无法从docker-compose连接.

$ docker-compose up
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile和docker-compose.yml就在这里.

Dockerfile

FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

web:
  build: .
Run Code Online (Sandbox Code Playgroud)

为什么不能连接?有任何想法吗?

docker docker-compose

131
推荐指数
15
解决办法
14万
查看次数

ImportError:无法从“markupsafe”导入名称“soft_unicode”

我正在尝试使用 Airflow 和 Postgres 构建一个 docker 容器,但在构建过程中出现了许多错误,如下所示。我尝试过降级,markupsafe如下requirements.txt所示,但没有帮助。我可以做什么来解决这个问题?

# I tried this version:
markupsafe==2.1.1
# and then also this one:
markupsafe==2.0.1
Run Code Online (Sandbox Code Playgroud)

错误信息:

ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py)
Run Code Online (Sandbox Code Playgroud)

我的docker-compose.yml

version: '3'
services:
  postgres:
    image: postgres:11.2
    environment:
      - POSTGRES_USER=airflow
      - POSTGRES_PASSWORD=airflow
      - POSTGRES_DB=airflow
    ports:
      - "5432:5432"

  webserver:
    image: puckel/docker-airflow:1.10.4
    build:
      context: https://github.com/puckel/docker-airflow.git#1.10.4
      dockerfile: Dockerfile
      args:
        AIRFLOW_DEPS: gcp_api,s3
    restart: always
    depends_on:
      - postgres
    environment:
      - LOAD_EX=n
      - EXECUTOR=Local
      - FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
    volumes:
      - ./sparkify/dags:/usr/local/airflow/dags
      # Uncomment …
Run Code Online (Sandbox Code Playgroud)

python dependencies importerror docker docker-compose

122
推荐指数
6
解决办法
17万
查看次数

Windows 10"驱动程序上的Docker无法在端点上编程外部连接"

我正在尝试$ docker-compose up -d用于项目,并收到此错误消息:

错误:for api无法启动服务api:驱动程序无法在端点dataexploration_api_1上编程外部连接(8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117):启动userland代理时出错:mkdir /port/tcp:0.0.0.0:9000:tcp:172.19.0.2:80:输入/输出错误在启动项目时遇到错误.

我想知道它是否可能是港口?我以前一直在尝试端口8080.该项目最初是在mac上设置的,我已经从gitHub克隆了存储库.

非常感谢你提前!

windows github windows-10 docker-compose

121
推荐指数
6
解决办法
5万
查看次数

Docker-撰写持久数据MySQL

如果我运行$ docker-compose down以下内容,我似乎无法保持MySQL数据持续存在.yml

version: '2'
services:
  # other services

  data:
    container_name: flask_data
    image: mysql:latest
    volumes:
      - /var/lib/mysql
    command: "true"

  mysql:
    container_name: flask_mysql
    restart: always
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
      MYSQL_USER: 'test'
      MYSQL_PASS: 'pass'
    volumes_from:
      - data
    ports:
      - "3306:3306"
Run Code Online (Sandbox Code Playgroud)

我的理解是在我的data容器中使用volumes: - /var/lib/mysqlmap将它映射到我的本地机器目录,其中mysql将数据存储到容器中,并且由于这种映射,即使容器被销毁,数据也应该保持不变.而mysql容器只是进入数据库的客户端接口,因为可以看到本地目录volumes_from: - data

尝试这个答案,它没有用.Docker-撰写持久性数据问题

编辑

改变了我.yml如下图所示,创建了目录./data,但现在当我运行docker-compose up --buildmysql容器无法启动抛出错误说

  data:
    container_name: flask_data
    image: mysql:latest
    volumes:
      - ./data:/var/lib/mysql …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

120
推荐指数
6
解决办法
13万
查看次数

Docker Machine:设备上没有剩余空间

我正在尝试使用Docker Compose设置Docker Machine.

场景1(没有Docker Machine)
如果我在docker-compose up -d没有Docker Machine的情况下运行,它会创建我想要的3个链接容器(nginx + mongodb + nodejs).

场景2(使用Docker Machine)
然后我使用Docker Machine创建一个VM,并告诉Docker与该机器通信eval $(docker-machine env streambacker-dev).

此时,如果我ssh到我的docker机器并运行df -h,我得到:

码头机df -h

如果我然后运行docker-compose up -d,我在下载最后一个容器时得到"设备上没有空间"错误.

之后"tmpfs"似乎确实有点满:

码头机df -h

检查--virtualbox-disk-size选项显示它默认为20000 MB,我认为这两张图片上我们可以看到"/ dev/sda1".那么为什么容器会填满"tmpfs"n,究竟什么是"tmpfs"?是临时下载目录吗?如何为容器创建更多空间?

谢谢!

有关信息,我使用的是Docker Machine 0.4.0-rc2Docker Compose 1.3.2.

docker docker-compose docker-machine

119
推荐指数
4
解决办法
8万
查看次数

如何在docker-compose.yml中将参数传递给入口点

我用这个图片:dperson/samba

图像定义了它自己的入口点,我不想覆盖它.

我需要将参数传递给入口点,只需使用docker即可:

docker run ... dperson/samba arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

但是如何用docker_compose.yml做呢?

现在我用作解决方法:

command: samba.sh arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

但是当我强行重新定义入口点时,它并不令人满意.

docker-compose

118
推荐指数
6
解决办法
9万
查看次数

Docker撰写:没有这样的图像

当我跑docker-compose up,我得到这个错误:

root@ubuntu:/home/benson/Docker/HaproxyMy# docker-compose up
Recreating 950ddc308278_950ddc308278_950ddc308278_950ddc308278_950ddc308278_haproxymy_webb_1
Recreating 485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_haproxymy_webc_1
Recreating 2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_haproxymy_weba_1

ERROR: for webb  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for webc  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for weba  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

weba:
    build: ./web
    expose:
        - 80

webb:
    build: ./web
    expose:
        - 80

webc:
    build: ./web
    expose:
        - 80


haproxy:

    image: haproxy:latest

    volumes:

        - ./haproxy:/haproxy-override
        - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    links:

        - weba
        - webb
        - webc
    ports:

        - "80:80"
        - "70:70"
    expose:

        - "80"
        - "70"
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

109
推荐指数
4
解决办法
6万
查看次数

docker-仅限于某些容器

我有一个docker-compose.yml包含几个容器.其中三个用于我的应用程序(客户端,服务器和数据库),其余用于各种开发工具(例如psql,npm,manage.py等).当我做docker-compose up所有这些都开始了,但我只想要三个主要的开始.由于我已经指定了链接,我可以docker-compose up client从这三个开始,但是输出只来自那个容器.那么,有没有办法做到以下其中一种:

  1. 告诉docker-compose应该启动哪些容器 docker-compose up
  2. 从中获取所有链接容器的输出 docker-compose up client

docker docker-compose

106
推荐指数
6
解决办法
8万
查看次数