Docker 備忘録

インストール

sudo yum install docker
sudo groupadd docker
sudo usermod -aG docker tkobayas

http://www.stackoverflow360.com/questions/40012907/running-an-oracle-xe-docker-image-on-a-redhat-host

基本

  • sudo systemctl start docker
  • (初めてのコンテナ) docker run ... で作る
  • (持ってるコンテナ) docker ps -a でみつける
    • docker start {コンテナーID}

コマンド

sudo systemctl start docker
sudo systemctl stop docker

docker pull {イメージ名}:{タグ名}
docker images
docker run [オプション] [--name {コンテナー名}] {イメージ名}[:{タグ名}] [コンテナーで実行するコマンド] [引数]
docker ps [-a]
docker stop {コンテナー名}|{コンテナーID}
docker start [-i] {コンテナー名}|{コンテナーID}
docker rm {コンテナー名}|{コンテナーID}

http://www.atmarkit.co.jp/ait/articles/1406/10/news031.html

docker exec -it {container-name-or-id} bash

Image

Oracle

https://hub.docker.com/r/arahman/docker-oracle-xe-11g/

How-To: Install and Use

docker pull arahman/docker-oracle-xe-11g

Run with 22, 1521 and 8080 ports opened:

docker run -d -p 49160:22 -p 49161:1521 -p 49162:8080 arahman/docker-oracle-xe-11g /sbin/my_init

Connect database with following setting:

URL: jdbc:oracle:thin:@localhost:49161:xe
hostname: localhost
port: 49161
sid: xe

username: system
password: oracle

Password for SYS

oracle

Connect to Oracle Application Express web management console with following settings:

url: http://localhost:49162/apex
workspace: INTERNAL
user: ADMIN
password: oracle

Login by SSH

ssh root@localhost -p 49160
password: admin
scp -P 49160 DB_export.zip root@localhost:

https://github.com/wnameless/docker-oracle-xe-11g

MariaDB

$ docker run --name mariadb -e MYSQL_ROOT_PASSWORD=mariadb -p 13306:3306 -d mariadb:10.1.29

$ docker exec -it a8e3f944ebdc bash
$ mysql -uroot -pmariadb

apt-get update
apt-get install apt-file
apt-file update
apt-get install vim

MySQL57

$ docker exec -it mysql57 bash

$ mysql -uroot -pmysql

PostgreSQL

docker pull postgres:9.6

docker run --name postgres96 -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:9.6

docker exec -it -u postgres postgres96 psql

とりあえずこれだけ

sudo systemctl start docker
docker ps -a
docker start {コンテナーID}

Oracle

java.sql.SQLException: ORA-28001: the password has expired
が起きたら

alter profile default limit password_life_time unlimited;
alter user system identified by oracle;
alter user system account unlock;

docker run しても exit になってる

docker events を別ターミナルで実行して監視しながら docker run
docker inspect {コンテナーID}

Oracle 12

https://hub.docker.com/u/tkobayas/content/sub-72bedece-75d1-4565-bd38-231c3db2e35e

ORA-65096: invalid common user or role name

-> CDB ではユーザを作れない

> show con_name;

CDB$ROOT

> select name, open_mode from v$pdbs;

ORCLPDB1
READ WRITE

> alter session set container = ORCLPDB1;

> show con_name;

ORCLPDB1



docker exec -it oracle12.2bash -c "source /home/oracle/.bashrc; sqlplus /nolog"


docker run -d -it --name oracle12.2 -P store/oracle/database-enterprise:12.2.0.1
docker exec -it oracle12.2 bash

jbds711 の oracle12c-docker でつながる


jdbc:oracle:thin:@localhost:32775/orclpdb1.localdomain

sqlplus sys/Oradoc_db1 as sysdba

connect sys/Oradoc_db1 as sysdba

create user bpms identified by oracle default tablespace users;
grant dba to bpms;

alter session set container = ORCLPDB1;

cd /u01/app/oracle/product/12.2.0/dbhome_1
cd network/admin/

ORCLCDB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLCDB.localdomain)))
ORCLPDB1=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= of host)(PORT=))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLPDB1.localdomain)))


imp bpms/oracle@ORCLPDB1 file=requestinfo.exp fromuser=xxx_bpms touser=bpms


lsnrctl service でリスナーの今の設定を

掃除

まずコンテナ削除

docker rm <container_id>

イメージ確認

docker images

イメージ削除

docker rmi <image_id>

トラブルシュート

Fedora 31 以降

ERROR: Service 'hello' failed to build: OCI runtime create failed: this version of runc doesn't work on cgroups v2: unknown
  • Run: sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
  • Then reboot

docker/docker-compose on RHEL 8

https://linuxconfig.org/how-to-install-docker-in-rhel-8
先に podman 等をアンインストールすれば、コンフリクトは防げる

enabled=0 にするとか

sudo vi /etc/yum.repos.d/docker-ce.repo