〇実行方法
コンテナに入って、以下のようなmysqlコマンドでデータベースに接続する事ができます。
mysql -uroot -proot
mysql -h localhost -utest -ptest test
〇コンテナの構築
LXDで以下のコマンドを実行して、MySQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804mysql
lxc config set ub1804mysql user.user-data - < config.yml
lxc start ub1804mysql
config.yml
#cloud-config
package_upgrade: true
hostname: ub1804mysql
manage_etc_hosts: true
runcmd:
- 'apt-get update'
- 'locale-gen ja_JP.UTF-8'
- 'wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb'
- 'echo mysql-apt-config mysql-apt-config/enable-repo select mysql-5.7-dmr | sudo debconf-set-selections'
- 'export DEBIAN_FRONTEND=noninteractive && dpkg -i mysql-apt-config_0.8.9-1_all.deb'
- 'apt-get update'
- 'apt-get -y install mysql-server'
- 'mysql -uroot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8;"'
- "mysql -uroot -e \"CREATE USER test@localhost IDENTIFIED BY 'test';\""
- "mysql -uroot -e \"GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';\""
- 'mysql -uroot -e "FLUSH PRIVILEGES;"'
- 'mysql -utest -ptest test -e "create table messages (message_id integer not null, message varchar(100));"'
- "mysql -utest -ptest test -e \"insert into messages value (1, 'hello world.');\""
- "mysql -utest -ptest test -e \"insert into messages value (2, 'test message.');\""
- 'mysql -utest -ptest test -e "select * from messages;"'
final_message: "completed."
〇コンテナに入る
lxc exec ub1804mysql /bin/bash
〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=3306 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'
〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list
〇コンテナの停止
lxc stop ub1804mysql
〇コンテナの削除
lxc delete ub1804mysql
0 件のコメント:
コメントを投稿