Tag: 服务

如何在“docker运行”中运行2个服务?

我有一个Dockerfile,用Apache / php和redis创build一个映像。 我知道它应该分成两个容器。 但是我想知道在运行过程中是否可以启动apache和redis。 现在我可以用两种不同的方式运行: docker run –rm -p 80:80 -p 6379:6379 -v $ MY_FULLPATH:/ var / www / html -e REMOTE_HOST = $ REMOTE_HOST my_img redis-server docker run –rm -p 80:80 -p 6379:6379 -v $ MV_FULLPATH:/ var / www / html -e REMOTE_HOST = $ REMOTE_HOST my_img apache2-foreground 如果我使用第一种方法运行,我必须打开terminal手动启动apache。 如果我运行使用第二个,我必须手动启动REDIS。 通过文档: “如果列出多个CMD,则只有最后一个CMD才能生效。” 我知道只有“redis-server”会在一开始工作。 […]

在daemon.json中configuration主机后无法启动docker

我正在尝试在ubuntu 16.04中使用configuration文件/etc/docker/daemon.json来configurationdocker (版本17.03.1-ce)来添加主机: { "debug": true, "hosts": ["tcp://0.0.0.0:1234", "unix:///var/run/docker.sock"], "dns" : ["8.8.8.8","8.8.4.4"] } 当我尝试重新启动docker..它失败 #service docker restart Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 注意systemctl status docker.service : Starting Docker Application Container Engine… docker-slave-ubuntu-build dockerd[24806]: unable to configure the Docker daemon […]

微服务和随机端口服务发现

我的问题是关于在几个主机之间传播的服务的微服务和服务发现。 设置如下: 2个docker主机(主机A和主机B) Consul服务器(服务发现) 假设我有两项服务: 服务A 服务B 服务B部署10次(随机端口):主机A 5次,主机B 5次。 例如,当服务A与服务B通信时,它向服务B.example.com发送请求(硬编码)。 为了获得IP和端口,服务A应该向Consul服务器查询SRVlogging。 它将得到10个ip:port对,为此客户端应该使用一些负载均衡逻辑。 有没有一个更简单的方法来处理这个问题,而我没有为这个问题开发一个客户端parsing器(+ LB)库? 有没有像已经实施的地方? 我做错了吗?

如何重命名群中的docker服务?

我有一个docker群,它运行一个名为web的服务。 由于某些原因,我想重命名它。 我可以删除该服务并创build一个新的服务,但不是很好。 如何将其重命名为如old-web ?

如何在Docker-Compose中一起使用主机networking和其他用户定义的networking?

我想连接Docker-Compose文件中定义的两个Docker容器( app和db )。 其中一个( app )也应该连接到hostnetworking。 容器应该连接到一个通用的用户定义networking( appnet或default ),以使用appnetnetworking中的embedded式DNSfunction。 app还需要直接连接到主机networking,以便在Docker主机的物理networking中接收以太网广播(networking层2)。 如果我同时使用指令network_mode: host和networks组合在一起,我得到以下错误。 ERROR: 'network_mode' and 'networks' cannot be combined 所以我只能用networks做这个! version: "3.3" services: app: build: . image: app container_name: app environment: – MONGODB_HOST=db depends_on: – db networks: – appnet – hostnet db: image: mongo:latest container_name: db networks: – appnet networks: appnet: hostnet: external: name: host […]

Docker和systemd – 服务在10秒后停止

在遇到由systemd启动的Docker容器时,我遇到了麻烦。 当我用sudo docker start containername手动启动它sudo docker start containername ,它保持没有问题,但是当它通过systemd sudo systemctl start containername ,它保持10秒钟然后神秘死亡,留下syslog中的消息如下所示: Mar 13 14:01:09 hostname docker[329]: time="2015-03-13T14:01:09Z" level="info" msg="POST /v1.17/containers/containername/stop?t=10" Mar 13 14:01:09 hostname docker[329]: time="2015-03-13T14:01:09Z" level="info" msg="+job stop(containername)" 我假设它是systemd杀死进程,但是我不知道为什么它可能会发生。 systemd单元文件(/etc/systemd/system/containername.service)非常简单,如下所示: [Unit] Description=MyContainer After=docker.service Requires=docker.service [Service] ExecStart=/usr/bin/docker start containername ExecStop=/usr/bin/docker stop containername [Install] WantedBy=multi-user.target Docker在启动时可以正常启动,它甚至可以启动Docker容器,但无论是在启动还是手动启动,都会在10秒后退出。 帮忙谢谢收到!

如何知道服务容器是否准备好连接?

我经常遇到这个问题在Docker中创build堆栈。 假设我在docker-compose.yml中有一个LAMP堆栈: db: image: mysql environment: MYSQL_VARIOUS: things web: build: . links: – db ports: – "80" entrypoint: – setup-and-start setup-and-start脚本如下所示: wait_for_mysql && initialize 如果Web容器安装了mysql-client,那么我可以很容易地定义wait_for_mysql : wait_for_mysql() { local timeout=10 while sleep 1; do mysql [credentials] -e 'select 1;' && return 0 (( –timeout <= 0 )) && break done echo 'Failed to initialize mysql […]

kubernetes复制控制器

我有一个简单的kubernetes集群与主和3个爪牙。 在这种情况下,如果我运行一个简单的pod的nginx或一个mysql,它可以正常工作,但是,如果我改变yintypes的文件,我尝试运行复制的服务,豆荚将启动,但我不能访问服务。 这是我的yaml文件nginx与3个副本: apiVersion: v1 kind: ReplicationController metadata: name: nginx spec: replicas: 3 selector: app: nginx template: metadata: name: nginx labels: app: nginx spec: containers: – name: nginx image: nginx ports: – containerPort: 80 这是服务yamlconfiguration文件: apiVersion: v1 kind: Service metadata: labels: name: nginx name: nginx spec: ports: – port: 80 selector: name: nginx 我运行它: # […]

Docker没有托pipe它所说的端口上的任何东西,这是怎么回事?

我正在通过这篇博客文章解释如何通过Docker在.net核心上托pipe示例ServiceStack应用程序。 在命令行中我看到: 现在正在监听:https:// *:5000 但是如下面的屏幕截图所示,没有东西似乎托pipe在本地主机端口5000上。 我已经在我的Mac和PC上试过了,结果是一样的。 我是全新的Docker,所以我认为这是明显的东西,所以对于noob问题,我很抱歉! 谢谢

使build造docker任务更高效

我是docker的初学者,我用我的应用程序创build了一个映像(与node +中的oracle + db2 +网关连接)。 但是我正在编写代码,需要花费很长时间。 在本地机器上使用节点之前,我正在使用nodemon运行我的项目。 这是非常有成效的! 我需要这样的东西,以更快地转换我的构build任务。