色々な開発環境の元となる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 ~]#
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。