休日は自宅の仮想サーバを使ってスキルアップに励んでいます。 最近のマイブームはsitecoreの習得です。
今回は、Dockerサーバを構築してみました。
Dockerサーバ構築とSSHコンテナの作成
構築編
なぜこの手順を作ったのか
Dockerを構築してみましたがデフォルトではSSHログインできないので手順としてまとめてみました。
構成
Dockerホスト上に1つのSSHログインできるコンテナを作成してみます。
構築時のポイント
1.今回は特に困った点はありませんでした。短時間で素早く環境が出来上がります。1 Dockerホストの構築
1-1 必要パッケージのインストール
パッケージのインストール# yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
1-2 docker-ceのレポジトリ追加
CentOS7ではデフォルドのリポジトリのみですとdocker-ceがダウンロードできないのでdocker-ce用のリポジトリを追加します。
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# ll /etc/yum.repos.d/
# ll /etc/yum.repos.d/
total 32
-rw-r--r--. 1 root root 1664 Aug 31 2017 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Aug 31 2017 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Aug 31 2017 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Aug 31 2017 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Aug 31 2017 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Aug 31 2017 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 Aug 31 2017 CentOS-Vault.repo
-rw-r--r-- 1 root root 2424 May 5 01:32 docker-ce.repo
1-3 docker-ceのインストール
docker-ceのインストール# yum install docker-ce
1-4 Dockerの起動と自動起動設定
Dockerの起動。# systemctl start docker
Dockerサービスの起動確認。
# systemctl status docker
Dockerの自動起動設定
# systemctl enable docker
以下のコマンドでDockerについての情報を見ることができます。
# docker info
2 ssh用コンテナの作成
2-1 Dockerfileの作成
# vi 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-2 Dockerイメージのビルド
ビルド
# docker build -t centos7-ssh .
作成したイメージを確認
# docker images
「centos7-ssh」があればOK
2-3 コンテナの起動
コンテナの起動
# docker run -it -d -p 2222:22 -h test1 --name test1-cont centos7-ssh:latest
-d :バックグラウンドで動作させる指定
-p 2222:22 :Dockerホストのport2222 を DockerコンテナのPort22に転送する指定
-h test1 :ホスト名をtest1で起動
--name test1-cont :コンテナ名をtest1-cont で起動
2-4 コンテナの状態確認
# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf9252f764de centos7-ssh:latest "/usr/sbin/sshd -D" 6 minutes ago Exited (0) 2 minutes ago test1-cont
2-5 コンテナログイン
Dockerホストから直接ログインする# docker exec -it test1-cont bash
SSHでリモートログインする
Teratermなどで 192.168.0.50(DockerホストのIP)、Port 2222 を指定して接続
Dockerfileで指定したroot/パスワードでログインします。
2-6 コンテナの起動/停止
コンテナの起動# docker start <コンテナ名>
コンテナの停止
# docker stop <コンテナ名>
コンテナの削除
# docker rm <コンテナ名>
ここまででDockerホスト、コンテナの構築は完了です。
コメント
コメントを投稿