ショコラ
Dockerでスワップ領域を作るには?
OracleXE11g のインストール時に何度もこのスワップ領域のエラーに引っかかります。
なんとなく出来た気もするけど、後になると出来なくて、
少し調べたところ→「ループバックデバイスを使う」これが解だと思います。
もっさん先輩
手順
- oraclelinux のコンテナを起動します。
docker run --privileged -it oraclelinux:6 bash
- スワップファイルを作ります。例では2GBのスワップ領域を作成します。
dd if=/dev/zero of=swapfile bs=1M count=2048
- 権限を変更します。
chmod 0600 swapfile
- スワップ領域を準備します。
mkswap swapfile
- スワップファイルをループバックデバイスに割り当てます。(ここが肝)
losetup -f swapfile
ループバックデバイスの確認はコレ↓。
losetup -a
- スワッピングを有効にします。
いつもなら「swapfile」としていますが、「/dep/loop0」なのですね。
swapon /dev/loop0
スワップの外し方は swapoff。
swapoff /dev/loop0
ループバックの外し方は losetup -d。
losetup -d /dev/loop0
- 作成したスワップ領域を確認します。
free -m
以上