LoginSignup
3
1

プロキシ環境下でUbuntu20.04にDockerをインストールするスクリプトをつくった。

Last updated at Posted at 2021-03-28

はじめに

社内プロキシ環境でDockerをはじめとした開発環境を構築する際、ハマったりしないでしょうか。
そこで、3STEPでスクリプトを作成して、流すだけで最新バージョンのDockerおよびdocker-composeをインストールできるようにしました。
社内プロキシ環境下のおかげで、環境構築に時間を溶かしている方の一助になれば幸いです。

STEP1 プロキシ設定スクリプトを作成して実行する。

まず最初に社内のプロキシ情報を確認の上、下記項目を書き換えてください。

  • [プロキシサーバのアドレス]
  • [プロキシサーバのポート]
settingProxy.sh
#!/bin/bash

# Proxy Info
PROXY="http://[プロキシサーバのアドレス]:[ポートのポート]"

# Insert Setting to .bashrc
echo "
export HTTP_PROXY=$PROXY
export HTTPS_PROXY=$PROXY
export FTP_PROXY=$PROXY
export http_proxy=$PROXY
export https_proxy=$PROXY
export ftp_proxy=$PROXY
export no_proxy=\"127.0.0.1,localhost\"
export NO_PROXY=\"127.0.0.1,localhost\"
" >> ~/.bashrc

source ~/.bashrc

# Add apt setting
echo "
Acquire::http::proxy \"${http_proxy}\";
Acquire::https::proxy \"${http_proxy}\";
" > /etc/apt/apt.conf

上記のファイルを作成後、下記のようにスクリプトを実行してください。

sudo sh settingProxy.sh

.bashrcファイルへは追記書き込みしていますので、再実行した場合は設定情報が追記されていきます。
再実行する場合は、.bashrcファイルを開いて前の設定情報を削除してください。

STEP2 設定やパッケージインストールするスクリプトを作成して実行する。

次に設定およびパッケージインストールするスクリプトを作成します。
ポイントとしては下記です。

  • SSHできるようにする
  • エディタを使えるようにする
  • タイムサーバとの時刻同期
  • Windowsからリモートデスクトップできるようにする

社内NTPサーバなどと同期しておかないと、時刻がズレてくるので対応しておきます。
[NTPサーバのアドレス]を書き換えてください

installPackages.sh
#!/bin/bash

# set NTP server
sudo sed -i 's/#NTP=/NTP=[NTPサーバのアドレス]/' /etc/systemd/timesyncd.conf

# Update the apt package index
sudo apt-get update -y
sudo apt -y upgrade -y

# install OpenSSH
sudo apt -y install openssh-server

# install vim
sudo apt-get install vim-nox -y

# install xrdp
sudo apt -y install xrdp

# restart sshd
sudo service sshd restart

# restart timesyncd
sudo systemctl restart systemd-timesyncd.service

上記のファイルを作成後、下記のようにスクリプトを実行してください。

sudo sh installPackages.sh

STEP3 DockerおよびDocker-composeをインストール&設定するスクリプトを作って実行する。

最後にDockerおよびdocker-composeをインストール&設定するスクリプトを作って実行します。
ポイントとしては下記です。

  • http-proxy.confにプロキシを設定する
  • docker-composeのバージョンは最新版を取得する
installDocker.sh
#!/bin/bash

# Update the apt package index
sudo apt-get update -y

# install packages to allow apt to use a repository over HTTPS:
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common -y

# Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Use the following command to set up the stable repository. 
sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"

# INSTALL DOCKER ENGINE
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

# Create Dir
mkdir -p /etc/systemd/system/docker.service.d

# Create Proxy Setting File (overwrite)
echo "
[Service]
Environment=\"HTTP_PROXY=${http_proxy}\"
Environment=\"HTTPS_PROXY=${http_proxy}\"
Environment=\"NO_PROXY=localhost\"
" > /etc/systemd/system/docker.service.d/http-proxy.conf

# Apply Setting
sudo systemctl daemon-reload
sudo systemctl restart docker

# Install "docker-compose"
version=`curl -s https://api.github.com/repos/docker/compose/releases/latest | \
        grep tag_name | \
        sed -e 's/[^0-9\.]//g'`

sudo curl -L "https://github.com/docker/compose/releases/download/$version/docker-compose-$(uname -s)-$(uname -m)" \
             -o /usr/local/bin/docker-compose \
             -x ${http_proxy}

sudo chmod +x /usr/local/bin/docker-compose

# check docker version
docker version

# check docker-compose version
docker-compose version

上記のファイルを作成後、下記のようにスクリプトを実行してください。

sudo sh installDocker.sh

実行後、Dockerおよびdocker-composeのバージョンが表示されれば完了です。

おわりに

Windowsのメモ帳でスクリプトを作成した場合、改行コードがCR+LFとなってエラーします。
スクリプトの改行コードはLFでお願いします。

Ubuntu 20.04 LTS 日本語 Remixにて正常実行したことを確認しています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1