docker-composeをgitにプッシュせずに削除しました。私は愚かなことを知っています。スタックはまだ残っていますが、docker-composeを再生成する方法はありますか?ドッカーチェックを実行し、必要なすべてのビット(使用されているボリューム、変数など)を見ることができますが、最小限の労力でその組み合わせを復元するためのいくつかのトリックがあれば良いでしょう。
ありがとう、
答え1
まず、そのコマンドをインポートする必要があり、docker run
次のツールを使用して実行できます。https://github.com/nexdrew/rekcod。
コマンドがあれば、docker run
他のツールを使用してdocker-composeファイルに変換できます。https://composerize.com/。
たとえば、
次のファイルがありますdocker-compose
。
version: '2'
services:
logstash:
image: docker.elastic.co/logstash/logstash:5.6.3
ports:
- 9600:9600
volumes:
- ./pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
- ./config/:/usr/share/logstash/config
私はdocker-compose up
次のコンテナを実行して終了します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5febb7edb627 docker.elastic.co/logstash/logstash:5.6.3 "/usr/local/bin/dock…" 2 minutes ago Up 2 minutes 5044/tcp, 0.0.0.0:9600->9600/tcp logstash563_logstash_1
次に、docker run
基本コンテナに対して同じコマンドを生成します。
$ rekcod 5febb7edb627
docker run --name logstash563_logstash_1 -v /workplace/mariodes/docker/logstash/logstash-5.6.3/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:rw -v /workplace/mariodes/docker/logstash/logstash-5.6.3/config:/usr/share/logstash/config:rw -p 9600:9600/tcp --net logstash563_default --restart no -h 2392ddc1cea7 --expose 5044/tcp --expose 9600/tcp -e 'PATH=/usr/share/logstash/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'ELASTIC_CONTAINER=true' -e 'LANG=en_US.UTF-8' -e 'LC_ALL=en_US.UTF-8' -d --entrypoint "/usr/local/bin/docker-entrypoint" docker.elastic.co/logstash/logstash:5.6.3
rekcodの出力をコピーして次のように使用します。https://composerize.com/docker-composeファイルに変換します。
version: 3
services:
logstash:
container_name: logstash563_logstash_1
volumes:
- '/workplace/mariodes/docker/logstash/logstash-5.6.3/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:rw'
- '/workplace/mariodes/docker/logstash/logstash-5.6.3/config:/usr/share/logstash/config:rw'
ports:
- '9600:9600/tcp'
restart: no
expose:
- 5044/tcp
- 9600/tcp
environment:
- 'PATH=/usr/share/logstash/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
- ELASTIC_CONTAINER=true
- LANG=en_US.UTF-8
- LC_ALL=en_US.UTF-8
entrypoint:
- /usr/local/bin/docker-entrypoint
image: 'docker.elastic.co/logstash/logstash:5.6.3'