2020年8月24日月曜日

SSH接続できるDockerコンテナを作成する

SSH接続できるDockerコンテナを作成したので、その手順をまとめておく。


環境


Docker Desktop(Windows10 Pro)。



Dockerイメージ


今回はDocker HubにあるDocker公式のCentOS7イメージ(centos:centos7)を使う。Docerfileを用意してこのイメージにOpenSSHをインストールし、SSHの設定を変更する。変更する設定はrootでのログイン許可、ポートを20022に変更するなど。
FROM centos:centos7

RUN yum -y update \
 && yum install -y openssh-server \
    openssh-clients \
 && yum clean all

# rootでのログインを許可
# ポートを22から20022に変更
# rootのパスワードをpasswordに設定
RUN sed -ri 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config \
 && sed -ri 's/^#Port 22/Port 20022/' /etc/ssh/sshd_config \
 && echo 'root:password' | chpasswd
 
EXPOSE 20022

docker-compose.ymlの用意


docker-composeでコンテナを起動するためにdocker-compose.ymlを用意する。Dockerfileでイメージをビルドするようにし、SSHで使うコンテナのポート20022をホスト側の20022で使えるようにする。
version: "3"
services:
  server:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: server
    privileged: true
    command: /sbin/init
    ports:
      - 20022:20022

ホストからコンテナにSSH接続する


起動したコンテナにホストからSSH接続してみる。まずはコンテナを起動する。


次にホストからSSH接続する。



0 件のコメント:

コメントを投稿