Tag: 泊坞窗

Amazon AWS ECS Docker端口未正确绑定

我正在使用ECS优化的ECS映像并使用ECS进行部署。 所以,如果我撞到容器和curl localhost我得到预期的输出(预计将在端口80),这工作正常。 然后,如果我运行docker ps我得到以下输出 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1234 orgname/imagename:release-v0.3.1 "npm start" 53 minutes ago Up 53 minutes 0.0.0.0:80->80/tcp ecs-myname-1234` 这将build议端口80正在按预期映射。 (我也看到亚马逊ECS代理,但已经发布,以上并不重要) 然后我可以运行netstat -tulpn | grep :80 netstat -tulpn | grep :80 ,我得到以下输出 (No info could be read for "-p": geteuid()=500 but you should be root.) tcp 0 0 :::80 […]

build立docker图像的文件所有权

我想为添加到泊坞窗图像的文件设置文件权限。 我有这个简单的Dockerfile: FROM ubuntu:utopic WORKDIR /app RUN groupadd -g 1000 baz && useradd -u 1000 -g baz baz -d /app -s /bin/false RUN chown baz:baz /app && chmod g+s /app # want this to be have group baz ADD foo /app/ 用docker build -t abc .构build这个docker build -t abc . 哪里有一个foo文件. 创build一个图像。 不过, /app/foo里面的权限并不是我想要的。 docker […]

从Windows主机上运行的PGAdmin无法连接到在Docker中运行的Postgres

我已经阅读了所有关于这个问题的问题,但是这并没有帮助。 主机:Windows 10,运行VirtualBox和PgAdmin。 我已经正确安装了Docker并运行了几个容器,没有问题。 现在我试图设置Postgres。 我试了两个: 1 https://hub.docker.com/r/paintedfox/postgresql/ 2 https://hub.docker.com/_/postgres/ 而且都有同样的问题。 当我尝试从PgAdmin连接,它说服务器不听。 当我运行docker inspect postgres我看到 “NetworkSettings”:{“Bridge”:“”“SandboxID”:“6ad76f4d61017c44f814c5ec7ab9081a650d925a46c2b69902c4f0e5209076ce”,“HairpinMode”:false,“LinkLocalIPv6Address”:“”,“LinkLocalIPv6PrefixLen”:0,“Ports”:{“5432 / tcp” null“,”EndpointID“:”3f14630554c972ac875cbb384725c6970d1d4d5acfba7cbc05e416b5b22f0056“,”网关“:”172.17.0.1“,以及”SandboxKey“:”/var/run/docker/netns/6ad76f4d6101“,”SecondaryIPAddresses“:null,”SecondaryIPv6Addresses“ “GlobalIPv6Address”:“”,“GlobalIPv6PrefixLen”:0,“IPAddress”:“172.17.0.2”, 我已经尝试将该IP地址作为PGAdmin中的主机。 我已经尝试用-p 5432:5432设置容器,并连接为127.0.0.1:5432。 我曾尝试在VirtualBox中为容器设置端口转发。 我也试过机器主机,如Kitematic:192.168.99.100所示

使用Intellij IDEA重新加载远程弹簧启动应用程序的例外

我试图使用spring devtools ,docker和IntelliJ来设置远程的spring-boot环境。 一切从这篇文章开始。 不幸的是,它随机失败,例外。 在configuration下面: Dockerfile FROM java:8 EXPOSE 8888 WORKDIR /app ADD build.gradle /app/build.gradle ADD gradlew /app/gradlew ADD gradle /app/gradle ADD src /app/src RUN ["chmod", "+x", "/app/gradlew"] 泊坞窗,compose.yml backend: build: . env_file: environment ports: – "8888:8888" volumes: – ./.gradle-docker:/root/.gradle command: "/app/gradlew clean bootRun" links: – db db: image: postgres:9.5.3 env_file: environment ports: – […]

具有外部数据容器的Docker postgresql容器

我有一个数据容器与Dockerfile: from ubuntu:latest VOLUME ["/var/lib/postgresql/9.3/main"] 和一个postgresql服务容器: #install stuff ………… # Set the default command to run when starting the container CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] 然后我启动数据容器和postgresql容器: docker运行-i -t -d –name数据docker:数据 docker run -i -t -p 49131:5432 –name postgresql –volumes-from data –rm docker:postgresql 它说 : FATAL: data directory "/var/lib/postgresql/9.3/main" has wrong ownership HINT: The server […]

我怎样才能重新使用远程API“docker运行”?

比方说,远程API调用看起来像做了什么 $ docker run -d our-image 这里有一个关于docker run的高级视图,这是一个相关的问题 。 我已经尝试了解ContainerConfig部分: curl -X GET 'http://0.0.0.0:2375/images/our-image/json' 致电: curl -X POST -H "Content-Type: application/json" -d $CONTAINER_CONFIG 'http://0.0.0.0:2375/containers/create' 然后做一个docker run our-image和比较,为两个相应的容器创build,输出: curl -X GET 'http://0.0.0.0:2375/containers/<container-id>/json' 而且我注意到一些字段,如HostnamePath和LogPath ,它们是在LogPath docker run启动的版本中设置的。

Docker卷没有与Redis一起使用(mount会显示检查)

我的最后结论是我无法设置/c/users/…位置,因为它不在“Docker”中共享。 在此之后,我可以看到我的所有容器实例中的/c/users/..目录。 然后,我可以在每个基本上将文件写入主机的实例上使用-v标志。 我还没有得到的是,我不认为我现在实际上使用volumes …但它的工作… 我试图让我的Docker托pipe的Redis实例坚持其数据,但挂载的卷似乎并没有被使用。 我正在使用Docker的VirtualBox / boot2docker组合工作,但是我已经移动到Docker for Windows的撰写文件仍然工作,但我不知道的volumes属性。 我docker-compose.yml文件: vq-redis: image: redis:latest ports: – "6379:6379" volumes: – /c/users/r/.docker/data/redis/data:/data 添加或删除volumes定义并不重要,因为它将始终使用docker inspect显示如下所示: "Mounts": [ { "Name": "40791b26771b5d62778d85b0ef24e74e516f95d32cf217424232ce8f8a1b8c6f", "Source": "/var/lib/docker/volumes/40791b26771b5d62778d85b0ef24e74e516f95d32cf217424232ce8f8a1b8c6f/_data", "Destination": "/data", "Driver": "local", "Mode": "rw", "RW": true, "Propagation": "rprivate" } ], Volume属性仍然与Docker for Windows一起工作,还是缺less一点? 编辑: 如果我跑… docker run –name vq-redis -d -v //c/users/r/.docker/data/vq-redis:/data redis […]

Filebeat与Java日志appenders

我们将开始在AWS elasticbeanstalk上使用docker部署我们的Java应用程序,我们希望集中logging并使用ELK堆栈。 我想每个容器保留一个进程,因此避免使用filebeat,但为了做到这一点,我们将不得不使用不同的appender,如syslog甚至tcp appender。 我们不能承受损失的日志。 Filebeat提供了开箱即用的重试逻辑,但是将其引入到混音中会增加部署的复杂性,需要确保filebeat在容器终止时收到SIGTERM,确保它已经预先装入容器映像或Dockerfile中,等等。 如果我们使用tcp或s​​yslog appender进入path,重审就取决于我们,我们也希望避免代码的复杂性。 除了我所指出的之外,每种方法的优缺点是什么? 我们的日志库是logback。

在Docker容器中运行数据库的性能问题

有没有人注意到在Docker容器中运行数据库(MySQL或Postgres)的任何性能问题,我被告知会发生严重的性能下降。 请指教。

如何从Cron作业访问Docker设置环境variables

我最近尝试从链接的docker容器中运行一个cron作业,并遇到一个问题。 我的主docker容器链接到一个postgres容器,它的端口号被docker设置为一个环境variables。 这个环境variables没有在〜/ .profile中设置,或者在运行我的cron作业时可以加载的任何其他源文件中。 那么我怎样才能从我的cron作业中访问这些环境variables? 谢谢!