1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerコンテナ内の処理をバックグラウンドで実行する方法

Last updated at Posted at 2023-08-14

はじめに

別記事に、Linux上でバックグラウンドで実行する方法をまとめた。
今回は、Dockerコンテナ内でバックグラウンドで実行する方法をまとめる。

SSH接続したマシンで実行し、接続を切断しても処理は続くため、ジョブを提出し一度そこから離れ、終わった頃に結果を確認する、といったことも可能。
(ちゃんと書くと、ジョブを投稿後にSSH接続を切り、処理が終わった頃に再接続し結果を確認することも可能)

時間がない人向け

コンテナの立ち上げ方法

通常通り、docker runから立ち上げる。ただし、--rmのオプションは入れないこと。

バックグラウンドでの実行方法

root@container_id:# python3 run.py &

コンテナから出る方法

ctrl + q + pで出る

方法

コンテナの立ち上げ方法

通常通り、docker runから立ち上げる。ただし、--rmのオプションを入れないこと。入れてしまうと、コンテナから出たときにコンテナが削除されてしまう。
以下はコンテナが立ち上がった前提で書く。

バックグラウンドでの実行方法

Linux版の記事同様、末尾に&をつけるだけで良い。
例えば、pythonでrun.pyというモジュールをバックグラウンドで処理する場合、以下のようなコマンドを入力する。

root@container_id:# python3 run.py &

root@container_id:#はコンテナ内のコマンドプロンプト。

標準出力の保存方法

標準出力を保存する場合、以下のように実行する。そうすると、標準出力がrun.logのファイルにテキストファイル形式で保存される。

root@container_id:# python3 run.py > run.log &

または、標準エラー出力と区別するために以下のように書いても良い。

root@container_id:# python3 run.py 1> run.log &

ログファイルが上書きされるのを防ぎたい場合は、以下のように書く。

root@container_id:# python3 run.py >> run.log &

または

root@container_id:# python3 run.py 1>> run.log &

標準エラー出力の保存方法

標準エラー出力を保存する場合は以下のように実行する。そうすると、標準エラー出力がrun_error.logのファイルにテキストファイル形式で保存される。

root@container_id:# python3 run.py 2> run_error.log &

上書きを防ぎたい場合は以下のように書く。

root@container_id:# python3 run.py 2>> run_error.log &

標準出力と標準エラー出力を別々のファイルに記録する方法

以下のようなコマンドを実行する。そうすると、標準出力がrun.logファイルへ、標準エラー出力がrun_error.logへそれぞれテキストファイル形式で保存される。

root@container_id:# python3 run.py 1> run.log 2> run_error.log &

上書きを防ぐ場合は以下

root@container_id:# python3 run.py 1>> run.log 2>> run_error.log &

コンテナから出る方法

ctrl + q + pを押し、コンテナから出る。exitで出てしまうと、コンテナがストップされるため注意。(ただし、コンテナを立ち上げるとき、docker execから立ち上げると、exitから出てもストップされない)

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?