🍇

スタンドアロンサーバにDockerをインストールして起動する手順

2021/01/12に公開

やりたいこと

  • スタンドアロン(インターネットに接続できない)サーバに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からダウンロードできる。
https://download.docker.com/linux/static/stable/x86_64/

以下に手順を示す。
スタンドアロンサーバに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
https://filezilla-project.org/
などを使って、
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