如何快速切换Docker环境进行开发?

我有多个项目,我需要定期切换。 这些项目是通过docker-compose设置的,但有些需要外部容器可用。

所以为了在项目中运行docker-compose up -d ,我必须先切换到不同的目录,并在那里启动一些基本的服务容器(共享mysql,redis等实例)。

我不想并行运行所有容器,对于某些人来说,这是不可能的,因为他们在同一个端口上收听。

我也发现某些容器需要一个脚本才能在其中运行,以便在开发中正确运行,而且我发现自己为了切换到一个项目而重复执行相同的命令。

我认为这可以是自动的,我只是不确定如何解决这个问题。

我如何能够快速切换docker环境? 我的目标是只有一个class轮。

我目前的工作stream程涉及桌面 。

对于每个项目,我已经通过以下方式初始化一个桌面:

 desk edit project_a 

在那里我运行了我手动完成的所有步骤,例如:

 ponysay "INIT PROJECT A" docker stop $(docker ps -a -q) # stopping all the running containers cd ~/src/docker-compose/basic-services docker-compose up -d cd ~/src/project_a docker-compose up -d docker exec -it project_a_container_name /var/www/project_a/docker/scripts/dev-init.sh 

我通过以下方式在环境之间切换:

 desk . project_a desk . project_b 

现在切换项目变得相当容易。