docker version 打印:
Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a
Run Code Online (Sandbox Code Playgroud)
docker-compose --version 打印:
docker-compose 1.2.0
Run Code Online (Sandbox Code Playgroud)
我安装了docker apt-get install docker.io和docker-compose
curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)
我使用Ubuntu 14.04 x64.
初学者Docker的问题在这里,
所以我有一个开发环境,我正在运行模块化应用程序,它使用Docker Compose运行3个容器:服务器,客户端,数据库.
该docker-compose.yml如下所示:
#############################
# Server
#############################
server:
container_name: server
domainname: server.dev
hostname: server
build: ./server
working_dir: /app
ports:
- "3000:3000"
volumes:
- ./server:/app
links:
- database
#############################
# Client
#############################
client:
container_name: client
domainname: client.dev
hostname: client
image: php:5.6-apache
ports:
- "80:80"
volumes:
- ./client:/var/www/html
#############################
# Database
#############################
database:
container_name: database
domainname: database.dev
hostname: database
image: postgres:9.4
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=root
- POSTGRES_DB=dbdev
- PG_TRUST_LOCALNET=true
ports:
- "5432:5432"
volumes:
- ./database/scripts:/docker-entrypoint-initdb.d # …Run Code Online (Sandbox Code Playgroud) 是否可以重用多个容器之间共享的环境变量以避免重复,如下例所示:
version: '2'
services:
db:
image: example/db
ports:
- "8443:8443"
container_name: db
hostname: db
environment:
- USER_NAME = admin
- USER_PASSWORD = admin
svc:
image: example/svc
depends_on:
- db
ports:
- "9443:9443"
container_name: svc
hostname: svc
environment:
- DB_URL = https://db:8443
- DB_USER_NAME = admin
- DB_USER_PASSWORD = admin
Run Code Online (Sandbox Code Playgroud) 我正在浏览docker-compose的入门页面:https: //docs.docker.com/compose/gettingstarted/
在第3步中,我创建了一个docker-compose.yml文件,如下所述:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时:
$ docker-compose up
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
服务服务的不受支持的配置选项:'web'
我无法弄清楚发生了什么.有帮助吗?
谢谢
在我们的 Jenkins 代理中,我们运行了几个(大约 20 个)测试,其设置涉及运行docker-compose up“大量”服务/容器(大约 14 个)。
有时,我会收到以下错误:
ERROR: for testdb-data UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
Run Code Online (Sandbox Code Playgroud)
一直无法重现这一点。而且我仍在尝试弄清楚是否与我们的代理资源得到充分利用有关。
docker -v是1.10.1并且docker-compose -v是1.13.1。
关于这可能与什么有关的任何想法?
在使用docker容器时开发应用程序时我没有得到一些东西.
让我说我正在开发一个java应用程序,我设置了一个带有jdk 8基本映像的java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我要使用的IDE将寻找运行时本地计算机上的库而不是docker容器.
这是对的还是我错过了什么?有些事情我可以完全在docker容器上做,比如设置一个数据库,但是我还需要在我的本地开发机器上做一些事情,并尝试将它与我的docker镜像匹配,例如像java或python这样的语言运行库为了使用IDE.
containers docker docker-compose docker-swarm docker-machine
我是ASP.NET Core和docker的新手.我创建了一个简单的ASP.NET Core 2.0应用程序,并尝试在Windows上使用docker.但是,我收到此错误:
Your Docker server host is configured for 'Linux', however the docker-compose project targets 'Windows'.
虽然它似乎是非常有用的错误,但我无法找到"为Windows配置主机"的位置
我在构建服务器上运行了单元测试,并希望在出现故障时捕获日志结果以进行分析.我还没有找到一种方法将输出重定向docker-compose logs到文件,或找到日志文件本身实际存在的位置.
我想要相当于:
docker-compose logs > logs.txt
Run Code Online (Sandbox Code Playgroud)
编辑 - 澄清:
我的所有docker容器都会生成有用的日志,这些日志是手动docker-compose logs显示的.我想编写此过程的脚本,将这些相同的日志保存到我的构建服务器上的工件文件中.从本质上讲,docker-compose logs保存到文件的输出docker-compose logs永远不会退出.
我克隆了一个使用docker-compose的docker设置.一位远程开发人员确认它有效,所以我的问题似乎与我的设置有关.
我跑了docker-compose up,但目前给了我这个:
$ docker-compose up
Creating volume "mycompanydocker_mysql-data" with local driver
Creating volume "mycompanydocker_redis-data" with local driver
Creating volume "mycompanydocker_app-data" with local driver
Creating volume "mycompanydocker_mongo-data" with local driver
mycompanydocker_redis_1 is up-to-date
mycompanydocker_mongo_1 is up-to-date
mycompanydocker_mysql_1 is up-to-date
Building app
ERROR: Cannot locate specified Dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)
我docker-compose.yml看起来像这样:
version: '2'
services:
mysql:
build: mysql/.
env_file: env
expose:
- 3306
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
mongo:
build: mongo/.
env_file: env
expose:
- 27017
ports:
- "27017:27017" …Run Code Online (Sandbox Code Playgroud) 泊坞窗,撰写2.1提供了很好的功能,以指定condition用depends_on.当前的docker-compose文档说明:
版本3不再支持depends_on的条件形式.
不幸的是,文档没有解释,为什么condition表单被删除,并且缺乏关于如何使用V3向上实现该行为的任何具体建议.
docker ×10
docker-compose ×10
asp.net-core ×1
c# ×1
containers ×1
docker-swarm ×1
go ×1
linux ×1
logging ×1
ubuntu ×1