5

必要なパッケージを含むドッカーイメージを作成しました。私は 例を取り付ける必要なボリュームと一緒にホストとゲストポートを指定ドッカイメージを実行している:Docker-Composeコンテナ名の問題


sudo docker run -it --name CONTAINERNAME -v /host:/guest -p 
hostportno:guestportno 

私のコンテナがアップし、罰金を実行されています。
docker-composeを使用して、新しいドッカー画像にコンテナを移行しようとしています。
以下に示すように、私はdocker-compose.ymlファイルを作成し、必要なパラメータを指定しています

image: test1 
ports 
    - "1234:123" 
    - "2000:223" 
volumes: 
    - /home:/test 
    -container_name: dockercomposetest 
working_dir: /test 
command: /bin/bash 

私はドッカ-コンを使用して、それを移行することができません。下に述べたように、私は問題を取得しています
:周り

Conflict. The name "test" is already in use by container eeedac72bb25. 
You have to delete (or rename) that container to be able to reuse that 
name. 

作業は現在、私は停止し、削除し、コンテナをしてdocker-compose upを実行する必要があります。
通常のdocker runプロセスで開始したのと同じ名前のdocker-composeを使用してコンテナを再起動/移行することはできません。

答えて

1

を変更していない場合でもありません、あなたは同じ名前を持つ2つのコンテナを持つことができないコンテナを再作成します。 container_nameフィールドには別の名前を指定する必要があります。以前のコンテナは、名前を再利用する前に削除する必要があります。

コンテナがコンテナを作成したかのように扱うようにするには、コンテナのラベルを「作成」と設定する必要があります。これらを見つける最も簡単な方法は、コンテナの作成(おそらくcontainer_nameフィールドを削除して)を作成してから、docker inspectを使用してラベルを表示することです。

0

--force-recreateが役立つかどうかを確認することができます:docker-compose up man pageから

docker-compose up --force-recreate 

を:

あなたが--force-recreateフラグを使用し、すべてのコンテナを停止し、再作成するために作曲を強制したい場合。

--force-recreate 

その構成及び画像が

+1

同じ問題が存在します。 –