Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose up不启动容器_Docker_Docker Compose - Fatal编程技术网

Docker compose up不启动容器

Docker compose up不启动容器,docker,docker-compose,Docker,Docker Compose,Dockerfile: FROM shawnzhu/ruby-nodejs:0.12.7 RUN \ apt-get install git \ && npm install -g bower gulp grunt \ gem install sass RUN useradd -ms /bin/bash devel # Deal with ssh COPY ssh_keys/id_rsa /devel/.ssh/id_rsa COPY ssh_

Dockerfile:

FROM shawnzhu/ruby-nodejs:0.12.7

RUN \
    apt-get install git \   
    && npm install -g bower gulp grunt \
    gem install sass

RUN useradd -ms /bin/bash devel

# Deal with ssh
COPY ssh_keys/id_rsa /devel/.ssh/id_rsa
COPY ssh_keys/id_rsa.pub /devel/.ssh/id_rsa.pub
RUN echo "IdentityFile /devel/.ssh/id_rsa" > /devel/.ssh/config

# set root password
RUN echo 'root:password' | chpasswd

# Add gitconfig
COPY .gitconfig /devel/.gitconfig

USER devel

WORKDIR /var/www/

EXPOSE 80
nodejs:
  build: .
  ports:
    - "8001:80"
    - "3000:3000"
  volumes:
    - ~/Web/docker/nodejs/www:/var/www
docker-compose.yml文件:

FROM shawnzhu/ruby-nodejs:0.12.7

RUN \
    apt-get install git \   
    && npm install -g bower gulp grunt \
    gem install sass

RUN useradd -ms /bin/bash devel

# Deal with ssh
COPY ssh_keys/id_rsa /devel/.ssh/id_rsa
COPY ssh_keys/id_rsa.pub /devel/.ssh/id_rsa.pub
RUN echo "IdentityFile /devel/.ssh/id_rsa" > /devel/.ssh/config

# set root password
RUN echo 'root:password' | chpasswd

# Add gitconfig
COPY .gitconfig /devel/.gitconfig

USER devel

WORKDIR /var/www/

EXPOSE 80
nodejs:
  build: .
  ports:
    - "8001:80"
    - "3000:3000"
  volumes:
    - ~/Web/docker/nodejs/www:/var/www
命令:

FROM shawnzhu/ruby-nodejs:0.12.7

RUN \
    apt-get install git \   
    && npm install -g bower gulp grunt \
    gem install sass

RUN useradd -ms /bin/bash devel

# Deal with ssh
COPY ssh_keys/id_rsa /devel/.ssh/id_rsa
COPY ssh_keys/id_rsa.pub /devel/.ssh/id_rsa.pub
RUN echo "IdentityFile /devel/.ssh/id_rsa" > /devel/.ssh/config

# set root password
RUN echo 'root:password' | chpasswd

# Add gitconfig
COPY .gitconfig /devel/.gitconfig

USER devel

WORKDIR /var/www/

EXPOSE 80
nodejs:
  build: .
  ports:
    - "8001:80"
    - "3000:3000"
  volumes:
    - ~/Web/docker/nodejs/www:/var/www
$docker编写构建节点

$docker图像

REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
nodejs_nodejs          latest              aece5fb27134        2 minutes ago       596.5 MB
shawnzhu/ruby-nodejs   0.12.7              bbd5b568b88f        5 months ago        547.5 MB
$docker组合向上-d节点

Creating nodejs_nodejs_1
$docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$docker ps——全部


正如您所见,
docker compose up-d
应该创建一个容器并在后台运行它,但它没有。相反,它以代码0退出。

如果Dockerfile不执行任何操作(例如,在端口80上侦听的Web服务器),它将在运行完指令后立即丢弃。因为

如果您只想启动一个容器并通过终端与之交互,请不要使用
docker compose up-d
,而是使用以下命令:

docker run -it --entrypoint=/bin/bash [your_image_id]

这将启动您的容器并运行
/bin/bash
-it
帮助您保持与容器交互的终端会话。完成工作后,按Ctrl-D退出。

SQL Server 2017容器创建后不久退出时,我遇到了类似的问题。容器内运行的进程应该是长时间运行的,否则Docker将退出容器。在docker compose场景中,我实现了tty:true方法,该方法在此处有记录

您Dockerfile不启动任务我应该在Dockerfile中添加什么?例如,您可以添加节点start\u server.js?你明白为什么吗?不,我只是想稍后在里面运行一个容器到ssh,而不是做额外的工作,只要运行bash实例:)Docker stop container(如果它什么都不做)。解决方案是可能的,但如果你想调试或设置,这不是一个非常方便的解决方案。我遇到了以下问题:add
entrypoint:tail/var/log/syslog
(例如,基本上,映像中存在的任何文件)-这不会让容器立即退出。PS:当然,如果您在容器中运行任何守护程序,您不应该需要。谢谢!这是我在尝试同时使用Jenkins和Unity时遇到的问题,unityci容器一创建,它就退出了,然后Jenkins一个保持不动,但另一个要手动启动。