CentOS7にDockerインストール → SSHでログインできるコンテナを作成

概要

CentOS7 にDockerをインストールし、SSH接続できるDockerコンテナを作成した話。

はじめに

python のflaskが動く環境をDokerで作ろうとしました。 こちらを参考に、コンテナを作成しようとしたのですが、Dockerのバージョンが古く、DockerFileからイメージを作成できません。(「Unknown instruction: ARG」と言われます)
調べていく中で、

  • ARGは古いDockerでは使えない(参考)
  • CentOS6でのDocker利用は非推奨

ということを知りました。(2つ目は今更ですが。。。 )

以前からCentOS7系も触れる用にならないといけないと思っていたので、VPSのOSを変更し、ついでにDockerも入れ直しました。

Dockerのインストール

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install docker-io

SSH用のイメージ作成

1.Dockerfile作成



Dockerfileの記述内容

FROM centos:centos7
 
# OpenSSH サーバをインストールする
RUN yum -y install openssh-server
 
# root でログインできるようにする
RUN sed -ri 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
 
# root のパスワードを 設定
RUN echo 'root:password' | chpasswd
 
# 使わないにしてもここに公開鍵を登録しておかないとログインできない
RUN ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key
 
# sshd の使うポートを公開する
EXPOSE 22
 
# sshd を起動する
CMD ["/usr/sbin/sshd", "-D"]

2.Docker イメージをビルド

# ビルド
docker build -t centos7-ssh .
(省略)
# 作成したイメージを確認
docker images
# 「centos7-ssh」があればOK</pre>

備忘録

  • 「-t centos7-ssh」 → 作成するイメージ名を「centos7-ssh」にする
  • 「.」 → カレントディレクトリのDockerfileをつかってイメージ作成

3.コンテナ起動

以前と似たような要領でコンテナを起動させます。
docker run -i -t -v /var/docker/ssh/data:/var/data:rw --hostname sample -p 30300:3000 -p 30022:22 -p 30080:80 -p 30443:443 --name sample centos7-ssh:latest

あとは30022ポートを使ってSSH接続すればOKです。

後書き

書き終わって気づきましたが、CentOS6でも7でもインストール手順は変わりませんでした。

  • 以前:DockerHubからぷるしたイメージをそのまま使う
  • 今回:Dockerfileからイメージ作成

が違いますが、これはOS関係ないですね。

参考サイト

1 件のコメント :

  1. 888 Casino, Las Vegas, NV Jobs, Employment | JtmHub
    888 Casino, Las 용인 출장안마 Vegas, NV Jobs · Hotel Service, Hospitality 전라남도 출장안마 · 성남 출장샵 Sports Services · Security 광주광역 출장마사지 · Internet Gaming · Casino Supplier 부산광역 출장마사지 · Gaming & Entertainment · Hospitality

    返信削除