質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

2717閲覧

docker-composeで個別IP割り当てたい

tommyTeratail

総合スコア31

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2017/08/13 06:17

編集2022/01/12 10:55

docker-composeで個別IP割り当てたい

192.168.77.30 -> mariadbに接続したい

環境

vagrant(debian) + docker + docker-compose

sh

1Docker version 17.06.0-ce, build 02c1d87 2docker-compose version 1.15.0, build e12f3b9

ruby

1# -*- mode: ruby -*- 2# vi: set ft=ruby : 3 4# All Vagrant configuration is done below. The "2" in Vagrant.configure 5# configures the configuration version (we support older styles for 6# backwards compatibility). Please don't change it unless you know what 7# you're doing. 8Vagrant.configure("2") do |config| 9 # The most common configuration options are documented and commented below. 10 # For a complete reference, please see the online documentation at 11 # https://docs.vagrantup.com. 12 13 # Every Vagrant development environment requires a box. You can search for 14 # boxes at https://atlas.hashicorp.com/search. 15 config.vm.box = "bento/debian-9.0" 16 17 # Disable automatic box update checking. If you disable this, then 18 # boxes will only be checked for updates when the user runs 19 # `vagrant box outdated`. This is not recommended. 20 # config.vm.box_check_update = false 21 22 # Create a forwarded port mapping which allows access to a specific port 23 # within the machine from a port on the host machine. In the example below, 24 # accessing "localhost:8080" will access port 80 on the guest machine. 25 # config.vm.network "forwarded_port", guest: 80, host: 8080 26 27 # Create a private network, which allows host-only access to the machine 28 # using a specific IP. 29 # config.vm.network "private_network", ip: "192.168.33.10" 30 config.vm.network "private_network", ip: "192.168.77.10" 31 32 # Create a public network, which generally matched to bridged network. 33 # Bridged networks make the machine appear as another physical device on 34 # your network. 35 # config.vm.network "public_network" 36 37 # Share an additional folder to the guest VM. The first argument is 38 # the path on the host to the actual folder. The second argument is 39 # the path on the guest to mount the folder. And the optional third 40 # argument is a set of non-required options. 41 # config.vm.synced_folder "../data", "/vagrant_data" 42 config.vm.synced_folder "../synced_folder", "/home/vagrant/synced_folder", :nfs => true, create:true 43 44 # Provider-specific configuration so you can fine-tune various 45 # backing providers for Vagrant. These expose provider-specific options. 46 # Example for VirtualBox: 47 # 48 config.vm.provider "virtualbox" do |vb| 49 # Display the VirtualBox GUI when booting the machine 50 # vb.gui = true 51 52 # Customize the amount of memory on the VM: 53 vb.memory = "2048" 54 end 55 # 56 # View the documentation for the provider you are using for more 57 # information on available options. 58 59 # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies 60 # such as FTP and Heroku are also available. See the documentation at 61 # https://docs.vagrantup.com/v2/push/atlas.html for more information. 62 # config.push.define "atlas" do |push| 63 # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" 64 # end 65 66 # Enable provisioning with a shell script. Additional provisioners such as 67 # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the 68 # documentation for more information about their specific syntax and use. 69 # config.vm.provision "shell", inline: <<-SHELL 70 # apt-get update 71 # apt-get install -y apache2 72 # SHELL 73end

課題

下記エラーが表示される

sh

1docker-compose up 2Starting mariadb ... 3Starting mariadb_datastore ... 4Starting mariadb 5Starting mariadb ... error 6 7Starting mariadb_datastore ... done 8 9ERROR: for mariadb Cannot start service mariadb: Invalid address 192.168.77.30: It does not belong to any of this network's subnets 10ERROR: Encountered errors while bringing up the project.

yml

1version: '2' 2services: 3 4 mariadb_datastore: 5 image: busybox 6 container_name: mariadb_datastore 7 volumes: 8 - mariadb_datastore_volume:/var/lib/mysql 9 10 mariadb: 11 image: mariadb 12 container_name: mariadb 13 environment: 14 MYSQL_ROOT_PASSWORD: **** 15 volumes: 16 - ./sync_folder/mariadb/settings:/etc/mysql/conf.d 17 - ./sync_folder/mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d 18 - mariadb_datastore_volume:/var/lib/mysql 19 ports: 20 - "3306:3306" 21 22 networks: 23 mynet: 24 ipv4_address: 192.168.77.30 25 26volumes: 27 mariadb_datastore_volume: 28 29networks: 30 mynet: 31 driver: bridge 32 ipam: 33 config: 34 - subnet: 192.168.77.0/24 35 gateway: 192.168.77.10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

質問からかなり時間が経っていますが、
該当バージョンの Docker, Docker Compose のバグと思われます

次の環境で、同じ docker-compose.yml を使い
IP アドレスが問題なく割り当てられることを確認しました

Windows10 + Docker Desktop

console

1$ docker --version 2Docker version 19.03.8, build afacb8b 3$ docker-compose --version 4docker-compose version 1.25.5, build 8a1c60f6

console

1$ docker inspect mariadb 2[ 3 { 4--- 略 --- 5 "Config": { 6--- 略 --- 7 "Networks": { 8 "test-docker-mysql_mynet": { 9 "IPAMConfig": { 10 "IPv4Address": "192.168.77.30" 11 }, 12 "Links": null, 13 "Aliases": [ 14 "mariadb", 15 "45450a75ee53" 16 ], 17 "NetworkID": "2bcf1d4287f826f5798532e8b394fdf1d4bd2b63602681109fc75781e4fcd1f9", 18 "EndpointID": "42847328e3fa6eaf84e95273c4c24287585d79900cd0b95158cc8ee020c827e5", 19 "Gateway": "192.168.77.10", 20 "IPAddress": "192.168.77.30", 21 "IPPrefixLen": 24, 22 "IPv6Gateway": "", 23 "GlobalIPv6Address": "", 24 "GlobalIPv6PrefixLen": 0, 25 "MacAddress": "02:42:c0:a8:4d:1e", 26 "DriverOpts": null 27 } 28 } 29 } 30 } 31]

投稿2020/07/09 19:23

y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問