Dockerファイルを使ってUbuntuイメージを作成し、SSHログインする
DockerでUbuntuを起動し、SSHログインする
Docker上のUbuntuにSSHログインするためには、Dockerファイルで指示する必要があるようだ。
一番簡単なのは、DockerhubのUbuntuイメージのDockerFileをそのまま流用することだ。
rastasheep/ubuntu-sshdをそのままコピーして少し足して使ってみる。
.\Dockerfile_ubuntu_18_04.txt
rootのパスワードを"root"で設定していますね。
イメージ作成開始
Dockerファイル: Dockerfile_ubuntu_18_04.txt
Repository名: ssh_server
で作成する。
イメージ確認
ubuntuのイメージもできている。
これをベースにssh_serverを作ったのか。。
イメージ起動&接続
NAMESの変更 dockerコマンドでは、コンテナの起動やログインでNAMEをよく使う。
IDは覚えづらいのでNAMEを使うのは当然としても、NAMEは覚えやすいものに変更したい。
以下のコマンドで変更できる。
余談
一応、ユーザーは作成しておきたい。
Docker上のUbuntuにSSHログインするためには、Dockerファイルで指示する必要があるようだ。
一番簡単なのは、DockerhubのUbuntuイメージのDockerFileをそのまま流用することだ。
rastasheep/ubuntu-sshdをそのままコピーして少し足して使ってみる。
.\Dockerfile_ubuntu_18_04.txt
rootのパスワードを"root"で設定していますね。
FROM ubuntu:12.04
MAINTAINER Aleksandar Diklic "https://github.com/rastasheep"
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:root' |chpasswd
RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN mkdir /root/.ssh
RUN apt-get install -y sudo
RUN apt-get install -y nginx
RUN apt-get install -y vim
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
EXPOSE 22
EXPOSE 80
EXPOSE 433
CMD ["/usr/sbin/sshd", "-D"]
イメージ作成開始
Dockerファイル: Dockerfile_ubuntu_18_04.txt
Repository名: ssh_server
で作成する。
$ docker image build -f .\Dockerfile_ubuntu_18_04.txt -t ssh_server .
イメージ確認
ubuntuのイメージもできている。
これをベースにssh_serverを作ったのか。。
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ssh_server latest ff74bccb12dc 3 minutes ago 273MB ubuntu 18.04 c3c304cb4f22 7 weeks ago 64.2MB mcr.microsoft.com/mssql/server 2019-CU3-ubuntu-18.04 3c7ee124fdd6 3 months ago 1.46GB
イメージ起動&接続
# port10000へポートフォワードする $ docker run -d -p 10000:22 ssh_server 343a3dd16f5da1a2c2daed8c2b88ce32afd589e7fd4d81b1d5be9075f84f7060 # port10000へSSH接続 $ ssh root@127.0.0.1 -p 10000 The authenticity of host '[127.0.0.1]:10000 ([127.0.0.1]:10000)' can't be established. ECDSA key fingerprint is SHA256:Dz8dHBPvV6TCo80rsSte5tFCj6PtzlF2qnO0EFlo+4M. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[127.0.0.1]:10000' (ECDSA) to the list of known hosts. root@127.0.0.1's password: root root@343a3dd16f5d:~#
NAMESの変更 dockerコマンドでは、コンテナの起動やログインでNAMEをよく使う。
IDは覚えづらいのでNAMEを使うのは当然としても、NAMEは覚えやすいものに変更したい。
以下のコマンドで変更できる。
# 変更前
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
67f5d902e50e ssh_server "/usr/sbin/sshd -D" 19 hours ago Up 1 minutes 80/tcp, 433/tcp, 0.0.0.0:10000->22/tcp confident_sutherland
# NAME変更
docker rename 343a3dd16f5d ssh_ubuntu
# 変更後
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
343a3dd16f5d ssh_server "/usr/sbin/sshd -D" 19 hours ago Up 2 minutes 80/tcp, 433/tcp, 0.0.0.0:10000->22/tcp ssh_ubuntu
余談
一応、ユーザーは作成しておきたい。
# ユーザー作成 $ adduser ubuntu # グループ作成 $ gpasswd -a ubuntu sudo # パスワードいらない時 $ passwd -d ubuntu
コメント
コメントを投稿