[Docker] Oracle Database RAC 構築で学ぶDocker入門

本記事の目的

以下の記事で紹介したOracle Real Application Clusters構築を通じて学ぶことが出来るdockerコマンドに関するメモです。

[Oracle Database] 公式Docker Imageを利用してOracle Database 19cのRAC環境を構築してみた

※随時追加予定

 

 

利用するdockerコマンドと実行例

 

コンテナ確認(起動中のみ表示)

docker ps

[opc@vmrac ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

⇒コンテナが一つも起動していない状態

 

 

コンテナ確認(停止中のも表示)

docker ps -a

[opc@vmrac ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
194d76ced9d1 oracle/database-rac:19.3.0 "/usr/sbin/oracleinit" 23 hours ago Exited (137) 23 hours ago racnode2
3f118092e1e4 oracle/database-rac:19.3.0 "/usr/sbin/oracleinit" 25 hours ago Exited (137) 23 hours ago racnode1

⇒racnode1, racnode2という2つのコンテナが登録されている。

 

 

コンテナ起動

docker start コンテナ名

[opc@vmrac ~]$ docker start racnode1
racnode1

 

 

コンテナ起動ログ確認

docker logs -f コンテナ名

⇒-fつけることで、出力結果を追うことが出来る。別端末で表示がお奨め。

 

 

コンテナで任意のコマンド実行

docker exec -i -t コンテナ名 コマンド名

[opc@vmrac ~]$ docker exec -it racnode1 bash
[grid@racnode1 ~]$

⇒racnode1コンテナへbashで接続

 

 

コンテナ停止

docker stop コンテナ名

[opc@vmrac ~]$ docker stop racnode1
racnode1

 

 

コンテナ削除

docker rm コンテナ名

[opc@vmrac ~]$ docker rm racnode1
racnode1

⇒起動中のコンテナは削除できないので注意。

※Oracle DatabaseのRAC用コンテナがうまく起動できないような場合、以下の流れで調査&再実行するのがお奨め。
docker logs -fで原因調査⇒docker stop ⇒ docker rm ⇒ 設定変更など ⇒ docker create ⇒ docker start

 

 

コンテナ・ネットワーク確認

docker network ls

[opc@vmrac ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4592073d1baf bridge bridge local
ce79ea8ecd5c host host local
a7bb4b46ee65 none null local
5ae65f8b3fec rac_priv1_nw bridge local
8541f11a258b rac_pub1_nw bridge local

 

コンテナ作成

docker create

[opc@vmrac ~]$ docker create --help

Usage:  docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Create a new container

Options:
      --add-host list                  Add a custom host-to-IP mapping (host:ip)
  -a, --attach list                    Attach to STDIN, STDOUT or STDERR
      --blkio-weight uint16            Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --blkio-weight-device list       Block IO weight (relative device weight) (default [])
      --cap-add list                   Add Linux capabilities
      --cap-drop list                  Drop Linux capabilities
      --cgroup-parent string           Optional parent cgroup for the container
      --cidfile string                 Write the container ID to the file
      --cpu-period int                 Limit CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int                  Limit CPU CFS (Completely Fair Scheduler) quota
      --cpu-rt-period int              Limit CPU real-time period in microseconds
      --cpu-rt-runtime int             Limit CPU real-time runtime in microseconds
  -c, --cpu-shares int                 CPU shares (relative weight)
      --cpus decimal                   Number of CPUs
      --cpuset-cpus string             CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string             MEMs in which to allow execution (0-3, 0,1)
      --device list                    Add a host device to the container
      --device-cgroup-rule list        Add a rule to the cgroup allowed devices list
      --device-read-bps list           Limit read rate (bytes per second) from a device (default [])
      --device-read-iops list          Limit read rate (IO per second) from a device (default [])
      --device-write-bps list          Limit write rate (bytes per second) to a device (default [])
      --device-write-iops list         Limit write rate (IO per second) to a device (default [])
      --disable-content-trust          Skip image verification (default true)
      --dns list                       Set custom DNS servers
      --dns-option list                Set DNS options
      --dns-search list                Set custom DNS search domains
      --domainname string              Container NIS domain name
      --entrypoint string              Overwrite the default ENTRYPOINT of the image
  -e, --env list                       Set environment variables
      --env-file list                  Read in a file of environment variables
      --expose list                    Expose a port or a range of ports
      --gpus gpu-request               GPU devices to add to the container ('all' to pass all GPUs)
      --group-add list                 Add additional groups to join
      --health-cmd string              Command to run to check health
      --health-interval duration       Time between running the check (ms|s|m|h) (default 0s)
      --health-retries int             Consecutive failures needed to report unhealthy
      --health-start-period duration   Start period for the container to initialize before starting health-retries countdown (ms|s|m|h) (default 0s)
      --health-timeout duration        Maximum time to allow one check to run (ms|s|m|h) (default 0s)
      --help                           Print usage
  -h, --hostname string                Container host name
      --init                           Run an init inside the container that forwards signals and reaps processes
  -i, --interactive                    Keep STDIN open even if not attached
      --ip string                      IPv4 address (e.g., 172.30.100.104)
      --ip6 string                     IPv6 address (e.g., 2001:db8::33)
      --ipc string                     IPC mode to use
      --isolation string               Container isolation technology
      --kernel-memory bytes            Kernel memory limit
  -l, --label list                     Set meta data on a container
      --label-file list                Read in a line delimited file of labels
      --link list                      Add link to another container
      --link-local-ip list             Container IPv4/IPv6 link-local addresses
      --log-driver string              Logging driver for the container
      --log-opt list                   Log driver options
      --mac-address string             Container MAC address (e.g., 92:d0:c6:0a:29:33)
  -m, --memory bytes                   Memory limit
      --memory-reservation bytes       Memory soft limit
      --memory-swap bytes              Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int          Tune container memory swappiness (0 to 100) (default -1)
      --mount mount                    Attach a filesystem mount to the container
      --name string                    Assign a name to the container
      --network network                Connect a container to a network
      --network-alias list             Add network-scoped alias for the container
      --no-healthcheck                 Disable any container-specified HEALTHCHECK
      --oom-kill-disable               Disable OOM Killer
      --oom-score-adj int              Tune host's OOM preferences (-1000 to 1000)
      --pid string                     PID namespace to use
      --pids-limit int                 Tune container pids limit (set -1 for unlimited)
      --platform string                Set platform if server is multi-platform capable
      --privileged                     Give extended privileges to this container
  -p, --publish list                   Publish a container's port(s) to the host
  -P, --publish-all                    Publish all exposed ports to random ports
      --read-only                      Mount the container's root filesystem as read only
      --restart string                 Restart policy to apply when a container exits (default "no")
      --rm                             Automatically remove the container when it exits
      --runtime string                 Runtime to use for this container
      --security-opt list              Security Options
      --shm-size bytes                 Size of /dev/shm
      --stop-signal string             Signal to stop a container (default "SIGTERM")
      --stop-timeout int               Timeout (in seconds) to stop a container
      --storage-opt list               Storage driver options for the container
      --sysctl map                     Sysctl options (default map[])
      --tmpfs list                     Mount a tmpfs directory
  -t, --tty                            Allocate a pseudo-TTY
      --ulimit ulimit                  Ulimit options (default [])
  -u, --user string                    Username or UID (format: <name|uid>[:<group|gid>])
      --userns string                  User namespace to use
      --uts string                     UTS namespace to use
  -v, --volume list                    Bind mount a volume
      --volume-driver string           Optional volume driver for the container
      --volumes-from list              Mount volumes from the specified container(s)
  -w, --workdir string                 Working directory inside the container

 

 

その他

コンテナ・ボリューム確認

docker volume ls

[opc@vmrac ~]$ docker volume ls
DRIVER VOLUME NAME
local 85ae59745b3873d6c0834f63e41567ed66e8ba651a218bd3252fa2dcca77d593
local 959705331a085d6296fec22bf3d084f09f33d888a1757da43f6dae6eea43464c

 

 

コンテナ・ボリューム削除

docker volume prune

⇒Remove all unused local volumes、つまり停止中のコンテナに必要なボリュームも削除対象となるので実行時は要注意!

 

 

コンテナ定義の確認

docker inspect コンテナ名

docker network inspect コンテナ・ネットワーク名

docker volume inspect コンテナ・ボリューム名

 

 

ヘルプ

docker –help

とりあえずヘルプ見ておけばOK

 

 

参考情報

 

 

入門者にお奨めと評判のDocker本↓

スポンサードリンク

1 Trackback / Pingback

  1. [Oracle Database] 公式Docker Imageを利用してOracle Database 19cのRAC環境を構築してみた | | IT Edge Blog

Leave a Reply

Your email address will not be published.


*