やりたいこと
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
の書き方はこちらを参考にさせて頂きました!
https://qiita.com/take4s5i/items/e207cee4fb04385a9952