Ben tam bir gelişme yığını oluşturmak üzere liman işçisi-oluşturma deneyimini kullanıyorum.Docker-container'ı kullanarak docker konteynerlerini birbirine bağlarken IP adresleri nasıl kullanılır?
uygulama çalışmak için bir MySQL sunucusu ihtiyacı var.
my-application:
build: . # the Dockerfile resides in the current folder
ports:
- "9180:80"
- "9543:443"
external_links:
- mysql_mysql_1:mysql
environment:
DOCKER_ENVIRONMENT: dev
DB_NAME: local_db
DB_PASS: password
DB_USER: root
DB_HOST: # how to set the mysql's IP address?
Ben geçemez:
mysql:
image: mysql:5.6
volumes:
- /data/mysql:/var/lib/mysql
- ./docker/mysql.d:/etc/mysql/conf.d
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
uygulama kendi liman işçisi-compose.yml ve referanslar MySQL konteyner vardır:
mysql server liman işçisi-oluşturmadeneyimine tarafından harici konteyner kurulumdur Bunları docker-oluştururken dinamik olarak.
application-container$ env|grep ADDR
MYSQL_PORT_3306_TCP_ADDR=172.17.0.241
Oysa bu benim DB_HOST
gerekli değildir: Belirli belirlenen değişkenleri olduğu gibi
Ben, uygulama mysql IP adresinin farkında olduğunu biliyoruz.
Ben DB_HOST
için nasılsa değişkeni haritalayabilir ya da farklı olarak ayarlayın?
Neden mysql server harici liman işçisi-composer.yml dosyada mı? Bu gerçekten gerekli mi? Birlikte çalıştırmak için gereken konteynerle uygulamalar varsa Genellikle, sadece bir liman işçisi-composer.yml yapılandırmak zorundayız. – nessuno
@nessuno Birden fazla proje için bu mysql kapsayıcısını kullanmak istiyorum. Etrafta uçan 12 mysql sunucuya ihtiyacım yok.Ayrıca, mysql veritabanını oldukça masif hale gelebileceğinden, mysql verilerini '/ data/mysql'de bulunan büyük bir HDD'ye eşleştiriyorum. Aynı klasöre eşlenmiş birden çok mysql örneğiniz varsa, fileysystem kilit sorunlarına yol açacaktır. – k0pernikus
Mysql kapsayıcı yapılandırmasını uygulamanızla birlikte koyabilirsiniz, sadece docker-compose'u '--no-recreate 'bayrağıyla çalıştırmanız yeterlidir, sanırım. Bundan sonra, yalnızca bir tane mysql konteyneriniz var ve bu kapsayıcıyı, adını kullanarak docker-compose.yml dosyasına doğrudan başvurabilirsiniz. Böylece 'DB_HOST: mysql' yapın. – nessuno