Bir ana bilgisayar dizinine bağlantı olarak birimler bağlamayı sevmiyorum, bu yüzden docker kaplarını tamamen docker yönetimli kaplarla yükseltmek için bir desen buldum. İle yeni bir liman işçisi konteyneri oluşturduğunuzda --volumes-from <container>
, yeni konteynere docker yönetilen birimlerin güncellenmiş görüntüleri paylaşılır.
docker pull mysql
docker create --volumes-from my_mysql_container [...] --name my_mysql_container_tmp mysql
my_mysql_container
Henüz orijinali hemen çıkarmayarak, yükseltilmiş konteyner doğru verilere sahip değilse veya bir sağlık testi yapamazsa, bilinen çalışma kabına geri dönme olanağına sahip olursunuz.
Bu noktada, genellikle bir şeylerin yanlış gitmesi durumunda konteynerin kendime bir güvenlik ağı vermesi için sahip olduğum yedekleme komut dosyalarını çalıştırırım.
docker stop my_mysql_container
docker start my_mysql_container_tmp
Artık yeni kapta olmasını beklediğiniz verilerin orada olduğundan emin olun ve bir sağlık kontrolü yapın.
docker rm my_mysql_container
docker rename my_mysql_container_tmp my_mysql_container
Yükleme istasyonu hacimleri, herhangi bir kabı kullandıkları sürece yapışacaktır, böylece orijinal kabı güvenle silebilirsiniz. Orijinal kap çıkarıldıktan sonra, yeni kap, her şeyin başlayacağı kadar güzel olmasını sağlamak için orijinalin adını alabilir.
Docker kaplarını yükseltmek için bu kalıbı kullanmanın iki büyük avantajı vardır. İlk olarak, birimlerin doğrudan yükseltilmiş kaplara aktarılmasına izin vererek birimlerin ana bilgisayar dizinlerine bağlanması gereğini ortadan kaldırır. İkincisi, asla çalışan bir liman işçisi konteynerinin olmadığı bir konumda değilsiniz; bu nedenle yükseltme başarısız olursa, orijinal docker kapsayıcısını tekrar açarak daha önce nasıl çalıştığına kolayca dönebilirsiniz.