Ada cakupan layanan yang didefinisikan dalam docker-compose.yml. Layanan ini sudah dimulai. Saya hanya perlu membangun kembali salah satu dari ini dan memulainya tanpa layanan lain. Saya menjalankan perintah berikut:
docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it still running !!!
docker-compose build --no-cache nginx
docker-compose up -d --no-deps # link nginx to other services
Pada akhirnya saya mendapat wadah nginx tua. Omong-omong komposisi buruh pelabuhan tidak membunuh semua kontainer yang berjalan!
docker-compose up --build
Jawaban:
menyusun buruh pelabuhan
sumber
docker-compose build service1 service2 --no-cache
melakukan pekerjaan ini dengan lebih baik ( github.com/docker/compose/issues/1049 ). Saya memiliki masalah dengan kontainer cache yang dibangun sebelum menggunakandocker-compose up -d --no-deps --build <service_name>
docker-compose build --no-cache service1 service2
Dengan docker-compose 1.19
up
Tanpa satu atau lebih
service_name
argumen semua kontainer akan dibangun kembaliDari menu bantuan
sumber
docker-compose up -d --force-recreate --build container_name
build --no-cache
opsi, kecuali jika deskripsi perintah benar-benar salahIni akan memperbaiki masalah Anda:
sumber
stop
danrm
semua kontainer maka Anda dapat menggunakan perintahdocker-compose down
. Solusi Anda lebih baik jika Anda hanya ingin menyingkirkan beberapa.docker-compose build <id/name>
sebelumup
membangun kembali Dockerfile yang diubah.Sebagai @HarlemSquirrel memposting, itu adalah yang terbaik dan saya pikir solusi yang tepat.
Tetapi, untuk menjawab masalah khusus OP, itu harus berupa perintah berikut, karena ia tidak ingin membuat kembali SEMUA layanan dalam
docker-compose.yml
file, tetapi hanya yangnginx
:Deskripsi opsi:
sumber
Mungkin langkah-langkah ini tidak sepenuhnya benar, tetapi saya suka ini:
stop docker compose:
$ docker-compose down
hapus wadah:
$ docker system prune -a
mulai menyusun buruh pelabuhan:
$ docker-compose up -d
sumber
Cukup gunakan:
Ganti
[yml_service_name]
dengan nama layanan Anda dalamdocker-compose.yml
file. Anda dapat menggunakandocker-compose restart
untuk memastikan perubahan dilakukan. Anda dapat menggunakan--no-cache
untuk mengabaikan cache.sumber
Masalahnya adalah:
tidak bekerja (Anda bilang itu masih berjalan). Jika Anda akan membangunnya kembali, Anda dapat mencoba membunuhnya:
Jika masih tidak berhasil, cobalah untuk menghentikannya dengan buruh pelabuhan secara langsung:
atau hapus itu
Jika itu masih tidak berhasil, periksa versi buruh pelabuhan Anda, Anda mungkin ingin memutakhirkan.
Mungkin bug, Anda bisa memeriksa apakah ada yang cocok dengan sistem / versi Anda. Berikut adalah pasangan, misalnya: https://github.com/docker/docker/issues/10589
https://github.com/docker/docker/issues/12738
Sebagai solusinya, Anda bisa mencoba menghentikan prosesnya.
sumber
Bagi saya itu hanya mengambil dependensi baru dari Docker Hub dengan keduanya
--no-cache
dan--pull
(yang tersedia untukdocker-compose build
.sumber
Menghapus wadah dengan rm sangat penting. Tanpa melepas, Docker akan memulai wadah lama.
sumber
Hanya:
sumber