我跟随this guide在Docker中定制MySQL数据库,并在对挂载的sql文件进行调整后多次运行此命令:
docker run -d -p 3306:3306 --name my-mysql -v /Users/pneedham/dev/docker-testing/sql-scripts:/docker-entrypoint-initdb.d/ -e MYSQL_ROOT_PASSWORD=supersecret -e MYSQL_DATABASE=company mysql在该命令的所有后续执行中,我会看到一个类似以下的错误:
docker: Error response from daemon: Conflict. The container name "/my-mysql" is already in use by container "9dc103de93b7ad0166bb359645c12d49e0aa4a3f2330b5980e455cec24843663". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.我想知道的是,docker run命令是否可以修改为自动杀死前一个容器(如果它存在)?或者是否存在具有相同所需结果的不同命令。
如果我要创建一个shell脚本来完成此任务,我将首先运行docker ps -aqf "name=mysql",如果有任何输出,则通过运行docker rm -f $containerID使用生成的容器ID。然后运行原始命令。
发布于 2020-10-29 02:19:54
docker run命令有一个--rm参数,该参数在运行完成后删除容器。请参阅docs。因此,只需将命令更改为
docker run --rm -d -p 3306:3306 --name my-mysql -v /Users/pneedham/dev/docker-testing/sql-scripts:/docker-entrypoint-initdb.d/ -e MYSQL_ROOT_PASSWORD=supersecret -e MYSQL_DATABASE=company mysqlhttps://stackoverflow.com/questions/64578696
复制相似问题