我有以下docker compose文件,用于启动mongo按预期工作的docker 容器。
但是,我似乎无法从compass本地计算机连接到容器。
我docker inspect在我的 mongo 容器上执行并得到它IP并尝试使用指南针连接,但它没有用 - 连接超时。
它是我的 docker 网络的 IP 还是我需要的 mongo 容器的 IP?
码头工人撰写文件:
version: "3"
services:
pokerStats:
image: pokerStats
container_name: pokerStats
ports:
- 8080:8080
depends_on:
- db
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27017:27017"
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 docker 堆栈部署应用程序。建立与泊坞窗,撰写(已运行测试后完全确定),我创建了一个群,加入它,并试图逃跑
docker stack deploy --compose-file docker-compose.yml default
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
failed to create service default_sharkcop-api: Error response from daemon: rpc error: code = InvalidArgument desc = ContainerSpec: image reference must be provided
Run Code Online (Sandbox Code Playgroud)
这是我的 docker-compose.yml
version: "3"
services:
# Define the api web application
sharkcop-api:
# Build the Dockerfile that is in the web directory
build:
context: ./sharkcop-api
dockerfile: Dockerfile
# Always restart the container regardless of the exit status; try and restart the container indefinitely
restart: always
# …Run Code Online (Sandbox Code Playgroud) 我有以下docker-compose文件:
version: "3"
services:
#
# APIs
#----------------------------------------------
pokerstats:
image: pokerstats
container_name: pokerstats
ports:
- 8080:8080
depends_on:
- db
#
# Utilities
#----------------------------------------------
db:
image: mongo
container_name: mongo
volumes:
- ./data/db:/data/db
ports:
- "27018:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)
在我添加volumes. 但是当我运行时不是:docker-compose up -dmongo 容器立即停止,在日志中我看到错误:
2020-04-10T19:17:17.313+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1457M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-10T19:17:17.772+0000 E STORAGE [initandlisten] WiredTiger error (1) [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照此处的官方文档在docker compose 中设置一个基本的 dev 3 节点 7.7.0 ES 集群,
但无法让所有 3 个节点同时运行。在运行docker-compose up至少一个容器后立即或不久之后退出,如下所示:
Starting es01 ... done
Starting es03 ... done
Starting es02 ... done
Attaching to es03, es02, es01
es01 exited with code 137
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过运行将其恢复docker-compose start es01(或者无论哪个碰巧退出,有时是随机的)它会导致这些错误,直到我杀死所有容器才会停止:
es03 | {"type": "server", "timestamp": "2020-05-25T15:52:37,214Z", "level": "WARN", "component": "o.e.c.c.ClusterFormationFailureHelper", "cluster.name": "es-docker-cluster", "node.name": "es03", "message": "master not discovered or elected yet, an election requires 2 nodes with ids [9RNLWSMbTmetFFh3Tm1q0g, 3CbHK5iBQAqt7poPRsMmaw], have discovered [{es03}{3CbHK5iBQAqt7poPRsMmaw}{AGMLafOfRyyMVeEuFuaTOA}{172.25.0.2}{172.25.0.2:9300}{dilmrt}{ml.machine_memory=2085416960, xpack.installed=true, …Run Code Online (Sandbox Code Playgroud) 我是 Docker 的初学者。我有一个简单的 DockerFile 和 Docker-compose.yml 文件当我使用 docker-compose up 时,它会显示一个错误,该错误以代码 1 退出,我不知道如何修复它。我的 DockerFile:
FROM openjdk:8
ENV APP_HOME /home
RUN mkdir -p $APP_HOME
ADD target/spring-docker.jar $APP_HOME/spring-docker.jar
WORKDIR $APP_HOME
EXPOSE 8080
CMD ["java","-Dspring.data.mongodb.uri=mongodb://db:27017/","-jar","/home/spring-docker.jar"]
Run Code Online (Sandbox Code Playgroud)
Docker-撰写:
version: '3.1'
services:
spring-docker:
build: .
restart: always
ports:
- "8080:8080"
depends_on:
- db
db:
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
restart: always
Run Code Online (Sandbox Code Playgroud)
SpringBoot 是基于应用程序及其 mongodb 数据库。
我是 kubernetes/docker 的新手,想知道 kubernetes 中的 docker 卷配置等价物是什么。在 docker-compose 文件中,您可以像这样创建卷:
volumes:
- wordpress/file-abc (1)
- wordpress:/var/www/html (2)
Run Code Online (Sandbox Code Playgroud)
(1)wordpress/file-abc如果 /var/www/html 发生变化,告诉 docker 保持内容不变。(2) 允许更改除wordpress/file-abc.
在 kubernetes 中创建持久卷时,kubernetes 与 (1) 的等价物是什么?Kubernetes 中的 volumeMounts 是否等同于 (2)?
在我的 docker-compose.yml 中,我定义了两个服务,app以及db.
version: "3.7"
services:
app:
image: my_app
container_name: my-app
ports:
- ${MY_PORT}:${MY_PORT}
env_file:
- ./app.env
...
depends_on:
- db
environment:
- DATABASE_URL=${DB_URL}
db:
image: my_db
container_name: my-db
env_file:
- ./db.env
ports:
- ${DB_PORT}:${DB_PORT}
Run Code Online (Sandbox Code Playgroud)
正如你在上面看到的,我已经定义了两个 env 文件,app.env并db.env在和服务的env_file选项中。appdb
应用程序.env:
MY_PORT=8081
Run Code Online (Sandbox Code Playgroud)
db.env:
DB_PORT=4040
DB_URL=postgres://myapp:app@db:4040/myapp
Run Code Online (Sandbox Code Playgroud)
我想检查我的 docker-compose 是否可以成功读取环境变量。所以,我运行命令docker-compose config。但是输出是
$ docker-compose config
WARNING: The MY_PORT variable is not set. Defaulting to a blank string.
WARNING: The DB_URL variable …Run Code Online (Sandbox Code Playgroud) 作为我的 CI 过程的一部分,我正在创建一个 docker-machine EC2 实例并通过 docker-compose 在其中运行 2 个 docker 容器。服务器容器测试脚本尝试连接到与 EC2 位于同一 VPC 中的 AWS elasticache redis 实例。运行测试脚本时,出现以下错误:
1) Storage
check cache connection
should return seeded value in redis:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/usr/src/app/test/scripts/test.js)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
Run Code Online (Sandbox Code Playgroud)
更新:我可以通过 EC2 本身的 redis-cli 进行连接:
redis-cli -c -h ***.cache.amazonaws.com -p 6379 ping
> PONG
Run Code Online (Sandbox Code Playgroud)
看起来我无法连接到我的 redis 实例,因为我的 docker 容器使用的 IP …
amazon-web-services redis amazon-elasticache docker docker-compose
我已经使用 docker 在我的实例上安装 Rocket.Chat。默认情况下,它在端口号 3000 上运行,但我想在另一个端口上运行它。
我的 docker-compose.yml 文件如下所示:https : //github.com/RocketChat/Rocket.Chat/blob/develop/docker-compose.yml
我怎样才能在不同的端口上运行它?
我试图用等待换它在我docker-compose.yaml等待的MySQL是创建依赖于它的服务前准备好。这是我的docker-compose.yaml:
version: '3.5'
services:
mysql:
image: mysql:5.6
ports:
- "3307:3306"
networks:
- integration-tests
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=mypassword
entrypoint: ./wait-for-it.sh mysql:3306
networks:
integration-tests:
name: integration-tests
Run Code Online (Sandbox Code Playgroud)
尝试使用 docker-compose 运行此错误时出现此错误:
启动集成测试_mysql_1 ...错误
错误:对于集成测试_mysql_1 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for- it.sh:没有这样的文件或目录”:未知
错误:对于 mysql 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for-it。 sh:没有这样的文件或目录”:未知错误:启动项目时遇到错误。
该wait-for-it.sh脚本与我的docker-compose.yaml文件处于同一级别,所以我不明白为什么找不到它。
docker ×10
docker-compose ×10
mongodb ×2
docker-swarm ×1
dockerfile ×1
ip ×1
kubernetes ×1
redis ×1
rocket.chat ×1
wiredtiger ×1
wordpress ×1