我一直在尝试在最近几个小时内解决这个问题,但是我陷入了困境。
我有一个非常简单的Dockerfile,看起来像这样:
FROM alpine:3.6
COPY gempbotgo /
COPY configs /configs
CMD ["/gempbotgo"]
EXPOSE 8025
Run Code Online (Sandbox Code Playgroud)
gempbotgo只是运行网络服务器和其他一些东西的go二进制文件。该网络服务器在8025上运行,并且应该向世界问好。
我的问题是暴露端口。我这样运行容器(构建后)
docker run --rm -it -p 8025:8025 asd
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,但是当我尝试在浏览器中打开127.0.0.1:8025或尝试wget时,我只是得到一个空响应。Chrome:ERR_EMPTY_RESPONSE
Windows 10系统上的防火墙使用了该端口,但不受该端口的限制。仅在我的“ Windows上的Ubuntu上的Bash”终端上运行不带容器的go二进制文件,然后浏览至127.0.0.1:8025即可顺利进行。其他地址返回了“ ERR_CONNECTION_REFUSED”,例如127.0.0.1:8030,因此该端口上肯定有活动的东西。
然后,我带着
docker exec -it e1cc6daae4cf /bin/sh
Run Code Online (Sandbox Code Playgroud)
并在那里用wget进行检查。也没有问题。使用“ Hello World”下载index.html文件
有什么想法为什么码头工人不发送任何数据?我也用docker-compose运行了我的容器,但没有任何区别。
我还在外部托管的VPS上运行了容器。那里同样的问题...(Debian)
我的代码:(注意Makefile) https://github.com/gempir/gempbotgo/tree/docker
编辑:
在收到一些评论后,我将Dockerfile更改为多阶段构建。现在是我的Dockerfile:
FROM golang:latest
WORKDIR /go/src/github.com/gempir/gempbotgo
RUN go get github.com/gempir/go-twitch-irc \
&& go get github.com/stretchr/testify/assert \
&& go get github.com/labstack/echo \
&& go get github.com/op/go-logging
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . …Run Code Online (Sandbox Code Playgroud) 我已经关注了Matt Raible的帖子 https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster ...我在本地机器上运行docker-compose时遇到错误.
向我显示的错误是:
➜~cdwork/jhipster/microservices/docker
➜泊坞木码头组成
Building store-mongodb-node Step 1/2 : FROM mongo:3.4.8 ---> 917819fa18fd Step 2/2 : ADD mongodb/scripts/init_replicaset.js init_replicaset.js ERROR: Service 'store-mongodb-node' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder345385260/mongodb/scripts/init_replicaset.js: no such file or directory
我用mongodb 创建了商店微服务.
我跑了./mvnw -Pprod dockerfile:build in store,blog project.(因为docker:build plugin不存在)
JHipster版本:v4.8.0
Docker版本:Docker版本17.06.2-ce,构建cec0b72
Docker-compose版本:docker-compose版本1.15.0,build e12f3b9
任何人都知道为什么docker无法找到mongodb/scripts/init_replicaset.js?
version: '2'
services:
blog-app:
image: blog
environment:
- SPRING_PROFILES_ACTIVE=prod,swagger
- [....]
store-mongodb-node:
build:
context: ../store/src/main/docker
dockerfile: mongodb/MongoDB.Dockerfile
command: mongod --replSet … 我正在尝试为使用docker-compose运行的图像运行交互式shell.
我试过docker-run和docker-exec
xyz@abc:~$ sudo docker exec -it 235197ff4f0e /bin/bash
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"
xyz@abc:~$ sudo docker run -it drone/drone:0.7 /bin/bash
No help topic for '/bin/bash'
Run Code Online (Sandbox Code Playgroud)
试图在无人机内生成ssh密钥,以便我可以从私有存储库中克隆.
我正在尝试使docker容器与mariadb和node.js图像一起使用。容器将使用中的现有数据库/home/mysql。但是,当启动容器时,我在node.js中收到此“连接失败”错误:
Error: ER_HOST_NOT_PRIVILEGED:
Host '172.18.0.5' is not allowed to connect to this MariaDB server
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml:
version: '3'
services:
mariadb:
image: mariadb
restart: always
volumes:
- /home/mysql:/var/lib/mysql
user: "mysql"
ports:
- "3306:3306"
watch:
build: .
restart: always
links:
- mariadb:mysql
environment:
- DOCKER_IP=172.18.0.2
depends_on: ['mariadb']
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)
阅读此线程后,我发现mysql实际上正在运行,但是无法让其他服务连接:
这些是我检查过的一些步骤。如您所见,我可以登录到mysql实例:
$ docker exec -it 552aae9ea09c bash
mysql@552aae9ea09c:/$ mysql -u root -p
Enter password: *******
MariaDB [(none)]> SELECT host, user FROM mysql.user;
+-------------+------------------+
| host | user | …Run Code Online (Sandbox Code Playgroud) 我正在通过docker compose在Node和Redis上运行React应用:
version: "3"
services:
webapp:
build: ./
ports:
- "127.0.0.1:3000:9090"
depends_on:
- redis
command:
npm run start
nginx:
build: ./nginx
ports:
- "80:80"
environment:
- NGINX_HOST=127.0.0.1
- NGINX_PORT=80
command:
service nginx start
redis:
image: redis
ports:
- "6379:6379"
volumes:
- ./data:/data
Run Code Online (Sandbox Code Playgroud)
Docker文件:
FROM node:alpine
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY . .
EXPOSE 9090
RUN npm run build_prod
Run Code Online (Sandbox Code Playgroud)
Server.js:
const redisClient = RedisClient.createClient(6379,'redis');
Run Code Online (Sandbox Code Playgroud)
我在运行docker-compose up --build时收到Redis连接拒绝错误:
redis_1 | 1:M 15 Nov 13:55:19.865 * Ready to accept …Run Code Online (Sandbox Code Playgroud) 我刚开始与Kafka-docker合作.我想在docker中使用以下命令创建一个主题:
./kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 3 --partition 2 --topic test
Run Code Online (Sandbox Code Playgroud)
它给我带来了以下错误:
Exception in thread "main" joptsimple.UnrecognizedOptionException: partition is not a recognized option
at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
at joptsimple.OptionParser.parse(OptionParser.java:396)
at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:340)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:43)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
Run Code Online (Sandbox Code Playgroud)
我在hosts文件中添加了以下行:
127.0.0.1 kafka1
127.0.0.1 zoo1
Run Code Online (Sandbox Code Playgroud) 我正在使用Docker Compose在我的开发环境中运行我的堆栈,但是我遇到了一个问题,即容器中的时区比我自己的时区晚了一个小时,破坏了关键任务,使开发变得非常困难。
我认为这将是一个普遍的问题,因此我进行了广泛搜索,但是我发现的仅有的两个解决方案不起作用(不起作用:无效)。
我已经尝试了两件事:
尝试1-从主机
对卷进行符号链接通过尝试挂载/etc/timezone和/etc/localtime作为ro卷,我希望容器与主机具有相同的时区。没有效果。
尝试2-设置变量,而command
不是让Docker Compose使用ENTRYPOINTmy中指定的变量,而是在-file中Dockerfile设置:commanddocker-compose.yml
environment:
- APPLICATION_ENV=dev-docker
- TZ=Europe/Stockholm
build: ../../core/document
command: >
sh -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
echo $TZ > /etc/timezone &&
exec /go/bin/documents"
Run Code Online (Sandbox Code Playgroud)
同样,完全没有效果。
是否没有在Docker容器中设置时区的官方方法?我觉得这应该是比我更多的用户的关键问题。
谢谢。
编辑:根据要求dockerfile从core/documents-project中。
# This file is intended for use with the GitLab CI tool where the binary has already been built.
FROM golang:1.9.2
# …Run Code Online (Sandbox Code Playgroud) 我有一台安装了PostgreSQL的服务器.我的所有服务都在容器中工作(docker-compose).我想从容器中使用我的Host PostgreSQL.买我有错误:
Unable to obtain Jdbc connection from DataSource (jdbc:postgresql://localhost:5432/shop-bd) for user 'shop-bd-user': Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL State : 08001
Error Code : 0
Message : Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用docker compose为web symfony app创建一个简单的dev env.我的问题是在尝试执行composer install时遇到此错误:
- doctrine/collections v1.5.0 requires php ^7.1 -> your PHP version (7.0.7) does not satisfy that requirement.
Run Code Online (Sandbox Code Playgroud)
这是我的docker compose文件的Composer部分:
composer:
restart: 'no'
image: composer/composer:php7
command: install
volumes:
- .:/app
Run Code Online (Sandbox Code Playgroud)
所以安装一个PHP 7.0,我至少需要7.1.我尝试过使用composer/composer:php7.1但是没有用.
有关如何做到这一点的任何想法?
提前致谢
我正在尝试在Windows的Bash(WSL)上运行3个Docker映像,MySQL,Redis和我的一个项目。
为此,我必须连接到Windows上运行的Docker引擎,特别是在上tcp://locahost:2375。我将以下行添加到.bashrc:
export DOCKER_HOST=tcp://127.0.0.1:2375
我可以成功运行docker诸如docker ps或的命令,docker run hello-world但是每当我cd进入项目目录并运行
sudo docker-compose up --build以加载图像并旋转容器时,都会收到错误消息:
错误:无法通过http + docker:// localunixsocket连接到Docker守护进程-它正在运行吗?
如果它位于非标准位置,请使用DOCKER_HOST环境变量指定URL。
我知道,如果使用-H参数可以提供地址,但我希望找到一个更永久的解决方案。由于某种原因,docker-compose似乎忽略了DOCKER_HOST环境变量,我不知道为什么。
bash docker docker-compose windows-subsystem-for-linux bash-on-windows
docker-compose ×10
docker ×6
bash ×3
apache-kafka ×1
composer-php ×1
drone.io ×1
jhipster ×1
localhost ×1
mariadb ×1
mongodb ×1
mysql ×1
networking ×1
node.js ×1
php ×1
postgresql ×1
reactjs ×1
redis ×1
symfony ×1
timezone ×1
windows ×1