0
1

More than 3 years have passed since last update.

AWS EC2 AmazonLinux2 のdockerホスト用初期設定

Last updated at Posted at 2020-02-05

やりたいこと

AmazonLinux2に、以下の設定をまとめて実行する。

  • タイムゾーンを日本に
  • 言語を日本語に
  • git docker docker-compose 最新版インストール
  • 以下のコマンドのエイリアス(ショートカット)作成
元のコマンド エイリアス
docker dcr
docker-compose ddc

コマンド

sudo yum update -y
sudo cp /etc/localtime /etc/localtime.org
sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
sudo mv /etc/sysconfig/clock /etc/sysconfig/clock.bk
sudo echo -e 'ZONE='Asia/Tokyo'\nUTC=true' > /etc/sysconfig/clock
sudo mv /etc/sysconfig/i18n /etc/sysconfig/i18n.bk
sudo echo 'LANG=ja_JP.UTF-8' > /etc/sysconfig/i18n
export LANG=ja_JP.utf8
export LC_ALL=ja_JP.utf8


sudo yum install -y git jq

sudo amazon-linux-extras install -y docker
sudo service docker start
sudo chkconfig docker on
sudo usermod -a -G docker ec2-user #本番環境などでは危険だからやらないでね!

compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
output='/usr/local/bin/docker-compose'
sudo curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o $output
sudo chmod +x $output

echo "alias dcr='docker'" >> ~/.bashrc
echo "alias ddc='docker-compose'" >> ~/.bashrc

source ~/.bashrc

# mod001: 2020-02-07
sudo cat - << EOS >> /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOS

おまけ: rootでもdocker-composeを使う場合の設定

sudo visudo

sudoers 編集画面を開き

# :/usr/local/binをおしりに追加
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

の通りに編集して、保存。

そして以下のコマンドを実行。

sudo sh -c "echo alias dcr='docker' >> /root/.bashrc"
sudo sh -c "echo alias ddc='docker-compose' >> /root/.bashrc"

追記

新しい改善ネタを仕入れたら、随時更新していきます。

mod001

詳細は割愛しますが、
DockerホストがCentOS系の場合、Dockerの設定ファイル daemon.json にこのおまじないを追加しないと、大きいDockerイメージが扱えなかったり、イメージ容量が限界を超えると動作不良の原因になってしまうようです。
(試行錯誤で何回もno-cacheビルドしてるとホストがハングアップしてしまうのも、これで解決できるかな…?)

ちなみにDockerインストール直後は daemon.json 自体存在しなかったりするかも。

sudo cat - << EOS >> /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOS

※このアグレッシヴな cat の書き方はこちらを参考にさせて頂きました!
:thumbsup: https://qiita.com/take4s5i/items/e207cee4fb04385a9952

0
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
0
1