Edited at

Dockerのコンテナを起動したままにする


概要

dockerをデーモン指定して起動してもすぐに終了してしまうため、

起動したままにできないか調べたメモを残します。


コマンドを指定する


ターミナル

$ docker run -d java:8 /bin/sh -c "while true; do echo hello world; sleep 1; done"



docker-composeで試してみる


docker-compose.yml

version: '2'

services:
java:
image: java:8
container_name: java
command: /bin/sh -c "while true; do echo hello world; sleep 1; done"


Dockerfileにしてみた


Dockerfile

FROM java:8

WORKDIR /root
ENTRYPOINT ["/bin/sh", "-c", "while true; do echo hello world; sleep 1; done"]



ターミナル

## イメージ作成

$ docker build -t my/java .
$ docker images

## コンテナ起動
$ docker run -d my/java
$ docker ps -a



追記

docker-composeで「tty:true」とすると起動しっぱなしになるようなので、上記方法は不要となりました。

docker-compose up したコンテナを起動させ続ける方法


追記

@dlpyvim さんからのコメントで、下記のやり方でも起動したままにできるようですね。


ターミナル

$ docker run -itd java:8 /bin/sh



参考サイト