2014-10-24 7 views
12

Zum Beispiel, wenn ich einen Fahrbefehl wie folgt aus:Wie können Sie einen Docker-Container ausführen, wenn dieser noch nicht existiert, oder ihn starten, wenn dies der Fall ist?

docker run --name yo -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh 

Wenn ich es wieder laufen, spuckt es diesen Fehler aus:

Error response from daemon: Conflict, the name yo is already assigned to c23849234e. You have to delete (or rename) that container to be able to assign yo to a container again.

Es mit Docker funktioniert allerdings starten:

docker start -ia yo 

Also möchte ich nur das eine oder andere tun.

Antwort

18

Einfache Antwort, verwenden Sie die Shells || Betrieb. Wenn run ausfällt, wird stattdessen start:

docker run --name yo -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh || docker start -ia yo 
Verwandte Themen