Dockerで各種DBを作成する

(8.0.23)
https://qiita.com/TAMIYAN/items/ed9ec892d91e5af962c6
https://note.com/shift_tech/n/nd5765c9f1c26

OS: Ubuntu 20.04

-- 1. イメージを取得

docker image pull mysql:8.0.23
docker image ls

-- 2. イメージをコンテナ化

docker container run -e 'MYSQL_ROOT_PASSWORD=password' \
-p 3306:3306 --name mysql01 --hostname mysql01 \
-d \
mysql:8.0.23

docker container ls -a

 

-- 3. 接続する

docker container exec -it mysql01 "bash"
mysql -u root -p

select version();
create database test;
use test;
create table tab1 (col1 int);
insert into tab1 values (1);
select * from tab1;


-- 4. コンテナを削除

docker container stop mysql01
docker container ls -a
docker container rm mysql01

 

 

(19c)
https://www.undercoverlog.com/entry/2018/07/25/Docker%E4%B8%8A%E3%81%ABOracle_Database_18c%E3%82%92%E6%A7%8B%E7%AF%89

https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance

OS: Ubuntu 20.04


-- 1. イメージ作成の準備

cd

git clone https://github.com/oracle/docker-images.git

cd docker-images/OracleDatabase/SingleInstance/dockerfiles


ダウンロードファイル名:LINUX.X64_193000_db_home.zip

ダウンロードファイルは、解凍せずに以下のディレクトリ配下へ格納

~/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0

 

-- 2. イメージ作成


./buildContainerImage.sh -h

./buildContainerImage.sh -e -v 19.3.0

docker image ls


-- 3. イメージをコンテナ化

sudo rm -rf /mnt/oradata
sudo mkdir -p /mnt/oradata
sudo chmod -R 777 /mnt/

 

docker run --name oracle01 \
--hostname oracle01 \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=pdb1 \
-e ORACLE_PWD=oracle \
-e INIT_SGA_SIZE=1000 \
-e INIT_PGA_SIZE=200 \
-e ORACLE_EDITION=enterprise \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-e ENABLE_ARCHIVELOG=false \
-v /mnt/oradata:/opt/oracle/oradata \
-itd \
oracle/database:19.3.0-ee


docker container ls -a

docker container logs oracle01 -f
※コンテナができるまでかなり時間がかかる

 

-- 4. 接続する

docker container exec -it oracle01 "bash"


sqlplus / as sysdba

set lines 1000
set pages 5000
select * from v$version;
select instance_name,status from v$instance;
select * from v$pdbs;


alter session set container=pdb1;

create user test identified by test;
grant dba to test;

conn test/test@localhost:1521/pdb1


create table tab1 (col1 int);
insert into tab1 values (1);
select * from tab1;
commit;

 

-- 5. コンテナを削除

docker container stop oracle01
docker container ls -a
docker container rm oracle01

 

 

 

(14)
https://zenn.dev/re24_1986/articles/b76c3fd8f76aec

OS: Ubuntu 20.04

-- 1. イメージを取得

docker image pull postgres:14
docker image ls

-- 2. イメージをコンテナ化

docker container run -e 'POSTGRES_PASSWORD=postgres' \
-p 5432:5432 --name postgres01 --hostname postgres01 \
-d \
postgres:14

docker container ls -a

 

-- 3. 接続する

docker container exec -it postgres01 "bash"
su - postgres
psql

select version();
create database test;
\c test;
create table tab1 (col1 int);
insert into tab1 values (1);
select * from tab1;


-- 4. コンテナを削除

docker container stop postgres01
docker container ls -a
docker container rm postgres01

 

 

(2019)
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash

https://zenn.dev/hashito/articles/83d11192de6168


システム要件:
CPU 2コア
メモリ 2G
OS Ubuntu 20.04


-- 1. Dockerのバージョンを確認
docker version

→ 1.8 以上であること


-- 2. Dockerのストレージ ドライバーを確認
docker info

→ Storage Driver: overlay2であること


-- 3. イメージを取得

docker image pull mcr.microsoft.com/mssql/server:2019-latest
docker image ls

-- 4. イメージをコンテナ化

docker container run -e "ACCEPT_EULA=Y" -e 'SA_PASSWORD=password' \
-p 1433:1433 --name sqlserver01 --hostname sqlserver01 \
-d \
mcr.microsoft.com/mssql/server:2019-latest

docker container ls -a

docker container exec -t sqlserver01 cat /var/opt/mssql/log/errorlog | grep connection


-- 5. 接続する

docker container exec -it sqlserver01 "bash"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA


select @@version;
go
create database test;
go
use test;
create table tab1 (col1 int);
insert into tab1 values (1);
select * from tab1;
go


-- 6. コンテナを削除

docker container stop sqlserver01
docker container ls -a
docker container rm sqlserver01