DockerでCentOS7のベースイメージを作る

プログラミング

色々な開発環境の元となるCentOS7のdockerベースイメージを作ります。

Dokerは以下でインストールしたものを使用してます。

Dockerfileの作成

元になるDockerfileを作成します。

# CentOS7の最新イメージを使う
FROM centos:centos7

# OpenSSH サーバをインストールする
RUN yum -y install openssh-server

# sshでログインできるようにする
RUN sed -ri 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config

# root のパスワードを 設定
RUN echo 'root:rootpass' | chpasswd

# 使わないにしてもここに公開鍵を登録しておかないとログインできない
RUN ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key

# sshd の使うポートを公開する
EXPOSE 22

# yumアップデート
RUN yum -y update && yum -y install epel-release  wget  make

# viの文字コード設定変更
RUN touch ~/.vimrc && echo "set encoding=utf-8" > ~/.vimrc

# sshd を起動する
CMD ["/usr/sbin/sshd", "-D"]

Dockerイメージを作成

# 作成したDockerfile
[root@localhost npm-sample] ls
Dockerfile

# イメージを作成
[root@localhost npm-sample] docker image build -t centos7/base:1 .

# 作成したイメージを確認
[root@localhost npm-sample] docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
centos7/base                1                   87c1ab1b4211        16 seconds ago      420MB

イメージからコンテナを作成

# コンテナを作成する
[root@localhost npm-sample] docker run -itd -p 2222:22 --name centos7-base centos7/base:1
f81637dfce84ce714b8cf6ebc6022f0e88938f4c0c21dd9609a3cb3ea418cb63

# コンテナを確認する
[root@localhost npm-sample] docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
f81637dfce84        centos7/base:1      "/usr/sbin/sshd -D"      32 seconds ago      Up 31 seconds       0.0.0.0:2222->22/tcp       centos7-base

# コンテナに入る
[root@localhost npm-sample] ssh -p 2222 root@localhost
The authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.
RSA key fingerprint is SHA256:81sh2Xj+NraLzQMPFhH9ywp8tPL18zvG0+E+TTlcL6g.
RSA key fingerprint is MD5:9e:0b:0a:7d:bd:88:24:34:64:c5:d7:9d:c6:15:9d:a7.
Are you sure you want to continue connecting (yes/no)? yes

root@localhost's password: 
Last failed login: Wed Jul 29 11:49:02 UTC 2020 from gateway on ssh:notty
There was 1 failed login attempt since the last successful login.

[root@f81637dfce84 ~]# 
pocketcode

30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。