Docker コンテナの中で色々試すのに root 権限のままだと困ることもあるので、 一般ユーザー権限でログインできる sshd を起動したコンテナを作りました。
検証環境
- Docker Community Edition : 18.06.0-ce-mac70 (26399)
- Engine: 18.06.0-ce
- Compose 1.22.0
最終的な Dockerfile
前回は root 権限で入れるようにするために PermitRootLogin
や PAM の設定も変更していましたが、 一般ユーザー権限で入るので不要です。
X11 が不要なら xauth や AddressFamily も不要です。
ユーザー名は ubuntu にして、サンプルのパスワードは今回も screencast にしました。 一般的な ubuntu 環境に合わせて sudo も使えるようにしておきます。
シェルも bash を指定して、補完が使えるように bash-completion もいれておきます。
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y openssh-server sudo bash-completion
RUN mkdir /run/sshd
RUN useradd -m -s /bin/bash ubuntu && gpasswd -a ubuntu sudo
RUN echo 'ubuntu:screencast' | chpasswd
# For X11Forwarding
RUN apt-get install -y xauth
RUN echo AddressFamily inet >> /etc/ssh/sshd_config
COPY --chown=ubuntu:ubuntu authorized_keys /home/ubuntu/.ssh/authorized_keys
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
docker-compose.yml
以下の内容で docker-compose.yml を作成しておけば Dockerfile の変更は docker-compose build
と docker-compose up -d
で、 docker-compose.yml の変更は docker-compose up -d
で反映できました。
version: '2.3'
services:
x11-example:
build: .
ports:
- "2222:22"
使ってみる
ssh -X -p 2222 ubuntu@localhost
で入って sudo apt install x11-apps
して xeyes
などで動作確認できました。
Disqus Comments