docker - 在CoreOS的同一Docker容器中运行两个服务?

标签 docker systemd coreos

我是Docker和CoreOS的新手。我想我对容器的概念以及它们之间的关系还不清楚。

我试图建立一个基于CoreOS的服务器,该服务器运行两种服务:一个自定义服务器(称为myserver)和一个内存缓存服务器(仅可由myserver访问)。

因此,我认为我可以在CoreOS机器上安装myserver.service文件,可以使用以下代码成功启动upi myserver:

ExecStart=/bin/bash -c '/usr/bin/docker start -a my_container || /usr/bin/docker run --name my_container my-image /usr/local/bin/myserver'

所以我的问题是,为了启动memcached服务器,是否要在CoreOS中创建一个新的memcached.service文件?如果是这样,它应该使用与定制服务器相同的容器“my_container”吗?如果他们不使用同一容器,myserver是否可以访问内存缓存服务器?

最佳答案

布鲁克斯,好消息。我有一个使用CoreOS编写的示例(https://github.com/brianredbeard/memcache-tools)。

在这种情况下,您将有两个带有两个系统单元的容器。

Memcache.service单元:

[Unit]
Description=My Memcached Server
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker run --rm --name %n -t -i memcache

worker 服务单位:
[Unit]
Description=My worker container
Requires=Memcache.service
After=Memcache.service

[Service]
ExecStart=/usr/bin/docker run --rm --name %n -t -i --link memcache:memcache my_container

这将执行第一个名为memcache的容器,并以以下形式将大量变量显示在my_container中:
MEMCAHCE_PORT_11211_TCP _ ??? ,例如 MEMCAHCE_PORT_11211_TCP_HOST MEMCAHCE_PORT_11211_TCP_PORT 可以在程序中使用。

看一下转储,加载和示例脚本,以及该示例中的Dockerfile和README.md。

关于docker - 在CoreOS的同一Docker容器中运行两个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23067015/

相关文章:

docker - 解析 Dockerfile 中的文件

docker - 为什么通过从容器中暴露 uwsgi 端口,nginx 会收到 502 BAD GATEWAY?

linux - 如何在 Systemd Unit 配置中使用 'when' 条件

linux - CoreOS Vagrant 虚拟盒 SSH 密码

node.js - 我应该在(Docker)容器中使用 forever/pm2 吗?

Redis 哨兵 docker 镜像/Dockerfile

docker - Nvidia Jetson Tx2 Opencv 在 Docker 中编译

Docker 409 客户端错误。如何获取真实错误并查看容器中的真实日志?

docker - 如何从最新版本的 Ubuntu (18.10) 运行使用 SystemD 的 Docker 容器?

linux - systemctl status 显示 inactive dead