使Memcache容器自动在Docker中启动的问题

道伊

我有一个正在构建的容器,该容器仅真正包含memcached,并且我希望它在构建容器后就启动。

这是我当前的Docker文件-

FROM centos:7
MAINTAINER Some guy <[email protected]>
RUN yum update -y
RUN yum install -y git https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

RUN yum install -y ansible && yum clean all -y
RUN yum install -y memcached
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;

VOLUME [ "/sys/fs/cgroup" ]
EXPOSE 11211/tcp 11211/udp
CMD ["/usr/bin/memcached"]
#CMD ["/usr/bin/memcached -u root"]
#CMD ["/usr/bin/memcached", "-D", "FOREGROUND"]

容器构建成功,但是当我尝试使用以下命令运行容器时

docker run -d -i -t -P <image id>,我看不到返回的列表中的图像docker ps

我试图让我的memcached服务以与httpd容器相同的方式运行,但是我无法使用-D标志传递参数(因为它已经是后台程序了,我正在猜测)。这就是我的httpd CMD的设置方式-

CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

在本地,如果我运行命令,/usr/bin/memcached -u root它将作为进程运行,但是当我在容器中尝试时,CMD它通知我找不到指定的文件(与我猜测的-u root节有关)。

设置CMD为/ bin / bash仍然不允许该服务启动。

如何运行memcached服务,并在运行时将其显示出来docker ps,以便可以在其中打开bash部分?

谢谢。

马特

默认情况下,memcached将在前台运行,这就是您想要的。-d选项会将memcached作为守护程序运行,这将导致容器立即退出。

Dockerfile看起来过于复杂,请尝试以下操作

FROM centos:7
RUN yum update -y && yum install -y epel-release && yum install -y memcached && yum clean all
EXPOSE 11211
CMD ["/usr/bin/memcached","-p","11211","-u","memcached","-m","64"]

那你就可以做你所需要的

$ docker build -t me/memcached .
<snipped build>

$ CID=$(docker create me/memcached)

$ docker start $CID
4ac5afed0641f07f4694c30476cef41104f6fd864c174958b971822005fd292a

$ docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS              PORTS                    NAMES
4ac5afed0641        me/memcached                  "/usr/bin/memcached -"   About a minute ago   Up 4 seconds        11211/tcp                jovial_bardeen

$ docker exec $CID ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
memcach+     1     0  0 01:03 ?        00:00:00 /usr/bin/memcached -p 11211 -u memcached -m 64
root        10     0  2 01:04 ?        00:00:00 ps -ef


$ docker exec -ti $CID bash
[root@4ac5afed0641 /]# 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Mac版Docker中自动启动Docker容器?

来自分类Dev

在Docker容器中运行的Debian上自动启动ntp服务

来自分类Dev

使用Docker容器自动启动sshd

来自分类Dev

在Docker容器内自动启动服务

来自分类Dev

如何在启动时在boot2docker中自动启动容器?

来自分类Dev

使用Docker主管使用容器启动中给定的变量启动后自动运行脚本吗?

来自分类Dev

在 Docker for Windows 中,如何防止容器在守护进程启动时自动启动?

来自分类Dev

在Docker容器中启动Jenkins

来自分类Dev

SonarQube docker 容器无法启动,elasticsearch 问题

来自分类Dev

确保 Docker 容器在主机启动时自动启动

来自分类Dev

在AWS自动扩展组中启动EC2时,如何运行简单的Docker容器?

来自分类Dev

启动Docker容器时自动运行Python脚本

来自分类Dev

在Docker Ubuntu容器中启动Xserver

来自分类Dev

Cassandra 2.1.11无法在Docker容器中启动

来自分类Dev

在Docker中停止最近启动的容器?

来自分类Dev

无法在Docker容器中启动Spark

来自分类Dev

在Docker容器中播放框架自动加载

来自分类Dev

有关安全启动和停止Docker容器的问题

来自分类Dev

nginx docker容器中cron的问题

来自分类Dev

如何在Docker容器中安装/启动Docker引擎服务

来自分类Dev

无法启动Docker容器

来自分类Dev

Docker容器未启动

来自分类Dev

Docker容器无法启动

来自分类Dev

在 Docker 中启动 Controller 时遇到的问题

来自分类Dev

Vuetify可滚动容器中的自动完成样式问题

来自分类Dev

Docker容器未启动(Docker启动)

来自分类Dev

在Docker容器中永久启动节点时出错

来自分类Dev

启动时在Docker容器中创建环境变量

来自分类Dev

tomcat7无法在Ubuntu Docker容器中启动

Related 相关文章

热门标签

归档