🍇
スタンドアロンサーバにDockerをインストールして起動する手順
やりたいこと
- スタンドアロン(インターネットに接続できない)サーバにDockerをインストールしたい。
背景
- セキュリティの都合上、インターネットに接続できないサーバ環境がある。
- yum や wget や curl は使えない。
- そのような環境でサーバ構築コマンドを実行するのは効率が悪い。
- よって、普通にネットが使える環境にてDockerイメージを作成しておき、そのイメージをまるごとスタンドアロン環境にアップロードしてコンテナを起動したい。
環境
- Windows10+VirtualBox+CentOS8(これをスタンドアロンサーバとする)
- 仮想マシンのネットワーク設定は「ホストオンリーアダプター」
- OSのネットワーク設定は下記。
nmcli
nmcli con up enp0s3
nmcli con reload
[root@localhost ~]# nmcli
enp0s3: 接続済み から enp0s3
"Intel 82540EM"
ethernet (e1000), 08:00:27:0C:BC:2E, hw, mtu 1500
inet4 192.168.56.102/24
route4 192.168.56.0/24
inet6 fe80::1177:722d:7894:166d/64
route6 fe80::/64
route6 ff00::/8
lo: 管理無し
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
前提
- スタンドアロンサーバにroot権限でSSH接続できること。
- tarコマンドが使えること。
事前準備
インターネット接続可能なPCにて、事前に下記をダウンロードしておく。
docker-20.10.2.tgz
Dockerインストール用のファイル。
下記URLからダウンロードできる。
以下に手順を示す。
スタンドアロンサーバにroot権限でSSH接続して実行する。
スタンドアロン環境を確認する
yum update
インターネットにつながらないので、下記のようにエラーになる。
[root@localhost ~]# yum update
CentOS-8 - AppStream 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'AppStream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
エラー: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
docker-20.10.2.tgz をアップロードする
FileZilla
PCに保存されている docker-20.10.2.tgz
をサーバにアップロードする。
解凍する
tar zxvf docker-20.10.2.tgz
設置する
cp docker/* /usr/bin
起動する
dockerd &
Dockerコマンドが使えることを確認する
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
あとは、通常のDockerの操作ができるので、
[root@localhost ~]# docker load < yamato_docker_image.tar
のようにDockerイメージを読み込んでコンテナを立ち上げれば使えるようになる。
不要ファイルを削除する
rm -rf docker
rm -rf docker-20.10.2.tgz
Discussion