| MariaDB | Podman(Docker)でMariaDBを使う | |
| (not ever) |
| Podman(Docker)でMariaDBを使う |
●Dockerfileの作成
ホストOSはRHEL 9.2です。任意のOSユーザーで任意のディレクトリを作成し、Dockerfileを記述します。
cd ~/mariadb mkdir podwork nano Dockerfile
FROM mariadb:latest COPY ./my.cnf /etc/mysql/conf.d/my.cnf COPY ./init.sql /docker-entrypoint-initdb.d/ VOLUME [ "/var/lib/mysql" ]
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
create database if not exists nkdb; use nkdb; CREATE TABLE ITEM_CATEGORIES(CATEGORY_ID INTEGER NOT NULL PRIMARY KEY, CATEGORY_NAME VARCHAR(100)); INSERT INTO ITEM_CATEGORIES(CATEGORY_ID, CATEGORY_NAME) VALUES (1, 'アイスクリーム');
※VOLUMEについて
コンテナのストレージを他のコンテナやホストと共有するには、
匿名ボリューム、名前付きボリューム、バインドマウントの3つの方法があります。
DockerfileのVOLUMEはpodman runの-vと同様に、このディレクトリを外部のDockerボリュームかホスト側のディレクトリと結びつけることを明示しています。
●イメージの作成と初回起動
ではpodmanのコマンドを使ってイメージを作成します。
cd ~/mariadb/podwork podman build -t mariadb-test-image . podman images
podman run --name mariadb -e MARIADB_ROOT_PASSWORD=RootPassword -dp 3306:3306 \ -e MARIADB_DATABASE=nkdb -e MARIADB_USER=nkdbuser -e MARIADB_PASSWORD=NkdbUserPassword mariadb-test-image podman ps
コンテナが起動したら中に入ってみます。
podman exec -it mariadb /bin/bash
Error: can only create exec sessions on running containers: container state improper
podman exec -it mariadb /bin/bash #
# mariadb -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
podman volume ls
podman volume inspect {VOLUME名}
podman volume prune
podman stop mariadb podman rm mariadb podman volume prune podman exec -it mariadb /bin/bash # mariadb -u root -p Enter password:
MariaDB[(none)]> use nkdb MariaDB[nkdb]> select * from ITEM_CATEGORIES;
# mariadb -u nkdbuser -p
●ホストOSからの接続
ホストOSからコンテナのMariaDBに接続してみます。
mariadb -h localhost -P 3306 -u nkdbuser -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
mariadb --host=127.0.0.1 -P 3306 -u nkdbuser -p
| もくじ | ||
| MariaDB | (C) 2002-2023 MISUMI URANO (2024/01/04 - (not ever)) |