LoginSignup
4
3

More than 3 years have passed since last update.

Docker で CentOS6-i386 (32bit版CentOS6) のイメージを使う

Last updated at Posted at 2019-06-16

仕事で急遽 32bit版の CentOS6 が必要になったのでメモ

Docker Hub からイメージを pull する

$ docker pull i386/centos:6

動作確認

$ docker run -it --rm i386/centos:6 /bin/bash

[root@dcf50c6c410b /]# cat /etc/redhat-release
CentOS release 6.10 (Final)

[root@dcf50c6c410b /]# date
Sun Jun 16 03:31:41 UTC 2019

# DockerコンテナはホストOSのカーネルを使って動作するためマシンネームは x86_64 で表示される
[root@dcf50c6c410b /]# uname -a
Linux dcf50c6c410b 4.9.93-boot2docker #1 SMP Thu Jul 19 18:29:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@dcf50c6c410b /]# uname -m
x86_64

# 実際は 32bit
[root@dcf50c6c410b /]# getconf LONG_BIT
32

# インストールされているパッケージは 32bit版だが、リポジトリの向き先が 64bit版になっている
# repo ファイルの $basearch の値が x86_64 になっているため
[root@dcf50c6c410b /]# yum list | grep '^rpm\.'
rpm.i686                                4.8.0-59.el6                @CentOS/6.10
rpm.x86_64                              4.8.0-59.el6                base

# 直接 32bit版のリポジトリを指定すると期待した動作となる
[root@dcf50c6c410b /]# sed -i 's/$basearch/i386/g' /etc/yum.repos.d/CentOS-*.repo
[root@dcf50c6c410b /]# yum clean all
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@dcf50c6c410b /]# yum list | grep '^rpm\.'
rpm.i686                                4.8.0-59.el6                @CentOS/6.10

このイメージの使い方

このような Dockerfile でベースイメージを作成してから使うのが良さそう

Dockerfile
FROM i386/centos:6

RUN sed -i 's/$basearch/i386/g' /etc/yum.repos.d/CentOS-*.repo && \
    ln -sf /usr/share/zoneinfo/Japan /etc/localtime
  • uname -m で動作環境を判定してるスクリプトを動かす場合は修正が必要

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3