每当我执行
docker-compose start
docker-compose ps
Run Code Online (Sandbox Code Playgroud)
我看到我的容器状态为"UP".如果我做
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
我会看到更多的冗长,但它将具有相同的状态.两个命令之间有什么区别吗?
我在a中使用RUN指令Dockerfile来安装rpm
RUN yum -y install samplerpm-2.3
Run Code Online (Sandbox Code Playgroud)
但是,我想传递值"2.3"作为参数.我的RUN指令应该类似于:
RUN yum -y install samplerpm-$arg
Run Code Online (Sandbox Code Playgroud)
哪里 $arg=2.3
是否有理由使用run启动docker-compose.yml文件或者您应该使用up?
我知道run可以启动一个特定的容器,但我指的是你在没有指定容器的情况下使用它的情况,以便启动所有的yml容器.
我通过运行以下命令在centos 7上安装了docker.
curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world
Run Code Online (Sandbox Code Playgroud)
注意:helloworld运行正常,没有问题.
但是,当我试图运行docker-compose(docker-compose.yml存在且有效)时,它只给我Centos上的错误(Windows版本适用于docker-compose文件)
/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
Run Code Online (Sandbox Code Playgroud) 我有一个apkmirror-scraper-compose具有以下结构的目录:
.
??? docker-compose.yml
??? privoxy
? ??? config
? ??? Dockerfile
??? scraper
? ??? Dockerfile
? ??? newnym.py
? ??? requirements.txt
??? tor
??? Dockerfile
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行以下内容docker-compose.yml:
version: '3'
services:
privoxy:
build: ./privoxy
ports:
- "8118:8118"
links:
- tor
tor:
build:
context: ./tor
args:
password: ""
ports:
- "9050:9050"
- "9051:9051"
scraper:
build: ./scraper
links:
- tor
- privoxy
Run Code Online (Sandbox Code Playgroud)
其中,Dockerfile用于tor为
FROM alpine:latest
EXPOSE 9050 9051
ARG password
RUN apk --update add …Run Code Online (Sandbox Code Playgroud) 我遇到了 Docker Desktop 的问题,目前我在 Stackoverflow 上以用户身份运行边缘版本。在我因未知原因未共享驱动器错误之前,该错误已通过安装边缘版本“解决”:Docker for Windows:驱动器共享因未知原因失败
现在安装了这个,我收到了这个新错误,它阻止了一些容器的构建。这些容器都已经过测试并且可以在其他几个系统上运行。目前 4 个容器中有 3 个没有构建,它们都产生如下相同的错误:
ERROR: for db Cannot create container for service db: status code not OK but 500: {"Message":"Unhandled exception: Filesharing has been cancelled"}
Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)
完整错误:
Creating imt2291-part2_www_1 ...
Creating imt2291-part2_phpmyadmin_1 ... done
Creating imt2291-part2_db_1 ...
Creating imt2291-part2_test_1 ... error
Creating imt2291-part2_www_1 ... error
ERROR: for imt2291-part2_test_1 Cannot create container for service test: status code not OK but 500: {"Message":"Unhandled exception: Filesharing has …Run Code Online (Sandbox Code Playgroud) 当我启动docker-compose upUbuntu容器退出时ubuntu exited with code 0.
当我跑步时docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntu,一切正常.
如何使用Docker Compose复制此行为?
这是我的Dockerfile:
# Version: 0.0.1
FROM ubuntu:15.04
ENV DEBIAN_FRONTEND noninteractive
#INSTALL ALL
RUN apt-get update && apt-get install -y \
nano \
php5-fpm \
php5-mysql \
nginx
#NGINX CONF
ADD nginx/sites-available/laravel.conf /etc/nginx/sites-available/
RUN rm /etc/nginx/sites-available/default
RUN mv /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-available/default
VOLUME /www
ENTRYPOINT nginx && service php5-fpm start && /bin/bash
CMD ["true"]
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)
而且docker-compose.yml: …
我已经运行 docker-compose build 好几天了,每天很多次,并且没有更改我的 DOCKERFILEs 或 docker-compose.yml。突然一个小时前我开始得到这个:
Building frontdesk-api
failed to get console mode for stdout: The handle is invalid.
[+] Building 10.0s (3/4)
=> [internal] load build definition from Dockerfile 0.0s
[+] Building 10.1s (4/4) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for mcr.microsoft.com/dotnet/sdk:5.0. 10.0sailed to do request: Head https://mcr.microsoft.com/v2/dotnet/sdk/manifests/5.0.201-buster-slim: dial tcp: lookup mcr.microsoft.com on …Run Code Online (Sandbox Code Playgroud) 我的 Mac 上的 Docker 安装可能有点混乱。起初我安装了 Docker 桌面,但运行它后我了解到,由于我使用的是较旧的 Mac,所以我必须安装 VirtualBox,所以我按照以下步骤操作:
/usr/local/bin允许用户在文件夹上写入
sudo chown -R $(whoami) /usr/local/bin
安装 Docker-Machine
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
Run Code Online (Sandbox Code Playgroud)
从开发帐户手动安装 Xcode CLI
安装自制啤酒
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Run Code Online (Sandbox Code Playgroud)
安装 Docker + wget (使用 Brew)
brew install docker
brew install wget
安装 bash 补全脚本
base=https://raw.githubusercontent.com/docker/machine/v0.16.0
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
sudo wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
done
Run Code Online (Sandbox Code Playgroud)
启用 docker-machine shell 提示符
echo 'PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '' >> ~/.bashrc
安装 VirtualBox、ExtensionPack …
我有一个开发环境,我是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)