Dockerでスワップ領域を作るには?

ショコラ
ショコラ

Dockerでスワップ領域を作るには?

OracleXE11g のインストール時に何度もこのスワップ領域のエラーに引っかかります。
なんとなく出来た気もするけど、後になると出来なくて、
少し調べたところ→「ループバックデバイスを使う」これが解だと思います。

もっさん先輩
もっさん先輩

手順

  1. oraclelinux のコンテナを起動します。
docker run --privileged -it oraclelinux:6 bash
  1. スワップファイルを作ります。例では2GBのスワップ領域を作成します。
dd if=/dev/zero of=swapfile bs=1M count=2048
  1. 権限を変更します。
chmod 0600 swapfile
  1. スワップ領域を準備します。
mkswap swapfile
  1. スワップファイルをループバックデバイスに割り当てます。(ここが肝)
losetup -f swapfile

ループバックデバイスの確認はコレ↓。

losetup -a
  1. スワッピングを有効にします。

いつもなら「swapfile」としていますが、「/dep/loop0」なのですね。

swapon /dev/loop0

スワップの外し方は swapoff。

swapoff /dev/loop0

ループバックの外し方は losetup -d。

losetup -d /dev/loop0
  1. 作成したスワップ領域を確認します。
free -m

以上

Scroll to Top