Представьте, что я создал сервис для загрузки фотографий котят и использую контейнер Docker на производстве.
Для этого я создал образ Docker со службой PHP 5.5, смонтировал папку «upload» моего приложения из реальной ОС, а также смонтировал папку с исходным кодом.
Через некоторое время я решил улучшить свое приложение, изменил исходный код, и теперь для него требуются другие env, чем в Docker.
Например, теперь мне нужен PHP 5.6 вместо PHP 5.5
Поэтому, когда я хочу изменить исходный код моего приложения, я могу сделать это, переключив смонтированную папку исходного кода с символическими ссылками (или не могу, потому что Docker будет хранить сокет? Если да, то как переключить исходный код? Должен ли я сделать это прямо в контейнере без монтажа?).
Но как быстро переключить контейнер Docker после переключения исходного кода?
Самый быстрый способ — запустить сеанс оболочки в контейнере, обновить среду, перезапустить службу php. Поскольку вы смонтировали исходный код, переключать не нужно.
Лучшим способом было бы создать образ докера с необходимой средой и остановить предыдущий контейнер, а затем запустить новый образ, монтируя соответствующие каталоги.
Других решений пока нет …