Dalam docker-compose.yml
file saya , saya memiliki yang berikut ini. Namun penampung tidak mengambil nilai nama host. Ada ide?
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
Ketika saya memeriksa nama host di penampung itu tidak diambil affy
.
docker
docker-compose
David Medinets
sumber
sumber
Jawaban:
Pada versi docker-compose 3 , Anda cukup menggunakan
hostname
kolom:sumber
Sepertinya ini bekerja dengan benar. Jika saya memasukkan konfigurasi Anda ke dalam file:
Dan kemudian angkat semuanya:
Dan kemudian periksa nama host di dalam penampung, semuanya tampak baik-baik saja:
sumber
hostname
dandomainname
berlakudocker-compose.yml
pilihan. Pembaruan: baru saja diuji, tampaknya masih berfungsi dengan baik (docker-compose versi 1.4.2, versi docker 1.8.2).Saya menemukan bahwa nama host tidak terlihat oleh penampung lain saat menggunakan
docker run
. Ini ternyata merupakan masalah yang diketahui (mungkin lebih merupakan fitur yang diketahui), dengan bagian dari pembahasannya adalah:Cara yang benar untuk menetapkan nama host - dalam hal jaringan kontainer - adalah dengan mendefinisikan alias seperti ini:
Sayangnya ini masih tidak berhasil
docker run
. Solusinya adalah dengan menetapkan nama penampung:Dan
alias1
kemudian dapat di-ping dari wadah lain.PEMBARUAN: Seperti yang ditunjukkan @grilix, Anda harus menggunakan
docker-compose run --use-aliases
untuk membuat alias yang ditentukan tersedia.sumber
--use-aliases
dengandocker-compose run
. Ini akan menghindari hardcode alias padarun
perintahBerdasarkan dokumentasi buruh pelabuhan: https://docs.docker.com/compose/compose-file/#/command
Saya hanya memasukkan
hostname: <string>
file docker-compose saya.Misalnya:
dan kontainer lb01 diambil
at-lb01
sebagai nama host.sumber
Cara termudah yang saya temukan adalah dengan hanya mengatur nama wadah di
docker-compose.yml
Lihat dokumentasi nama_penampung . Ini berlaku untuk docker-compose v1 +. Ini berfungsi untuk penampung ke penampung, bukan dari mesin host ke penampung.Sekarang Anda seharusnya dapat mengakses
affy
dari penampung lain menggunakan nama penampung. Saya harus melakukan ini untuk beberapa server redis dalam lingkungan pengembangan.CATATAN Solusinya bekerja selama Anda tidak perlu mengukur. Seperti lingkungan pengembang individu yang konsisten.
sumber
Compose 3.7
satu-satunya cara saya mendapat nama host layanan database untuk dilihat dari dalam wadah layanan lain dari tumpukan yang sama adalah untuk nama layanan sebagai nama host. Penggunaanhostname:
properti gagal. Menggunakan lingkungan HOSTNAME = konstruksi gagal juga.aliases
properti seperti yang dijelaskan dalamfoz
solusi.container_name
danhostname
nilai yang sama untuk mencapai apa yang saya butuhkanSaya perlu memutar wadah freeipa untuk memiliki kdc yang berfungsi dan harus memberikannya nama host jika tidak maka tidak akan berjalan. Apa yang akhirnya berhasil untuk saya adalah mengatur
HOSTNAME
variabel env di compose:Sekarang bekerja:
sumber