Skip to content

Instantly share code, notes, and snippets.

@shiro01
Last active November 14, 2019 14:50
Show Gist options
  • Save shiro01/02c99f5de2a2585161c3106923b17359 to your computer and use it in GitHub Desktop.
Save shiro01/02c99f5de2a2585161c3106923b17359 to your computer and use it in GitHub Desktop.
docker memo
### CentOSへのインストール手順
参考図書ではファイアウォールとSELinuxの無効化を行っているが不要かも
$ systemctl disable firewalld
$ vi /etc/sysconfig/selinux
SELINUX=disabled
ホストOSの確認
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
※CentOSが7.5.1804より古い場合はアップデートする。
ストレージの確認
$ df -HT
$ xfs_info / |grep ftype # ftype=1 でフォーマットされていることを確認したのかな?
必要なパッケージインストール
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
DockerCEのリポジトリ設定追加
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ ls /etc/yum.repos.d/
※docker-ce.repo が追加される。
開発者向けのDockerCEEdgeのリポジトリを無効化
$ sudo yum-config-manager --disable docker-ce-edge
Dockerエンジンのバージョン一覧の確認
$ yum list docker-ce.x86_64 --showduplicates
DockerCEのインストール
$ sudo yum makecache fast && sudo yum install -y docker-ce docker-ce-selinux
DockerCEが使用するストレージドライバの設定
$ sudo mkdir -p /etc/docker
$ sudo vi /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
Dockerエンジン起動 systemdに設定ファイルの変更を通知しDockerエンジンを起動
$ sudo systemctl daemon-reload # 設定ファイルの再読込
$ sudo systemctl restart docker # docker サービス再起動
$ sudo systemctl status docker # docker サービスステータス表示
$ sudo systemctl enable docker # docker サービス自動起動有効
Dockerコマンドの一般ユーザによる実行許可
下記手順前に参考を読むこと
参考:https://qiita.com/matyapiro31/items/3e6398ce737e2cdb5a22
$ getent group docker # dockerグループの確認
$ id # 現在ログイン中のユーザのグループ確認
$ sudo usermod -aG docker username # グループに追加
$ sudo systemctl restart docker # docker サービス再起動
### AWSECRへのimageのアップロード
※前提:ECRでリポジトリが作成されていること(ここではtest-repoとする。)
aws configure --profile dev
AWS Access Key ID [None]: -----
AWS Secret Access Key [None]: -----
Default region name [None]: ap-northeast-1
Default output format [None]: json
※作成済みの場合は不要、後続コマンドで作成済みのプロファイルを指定する
$(aws ecr get-login --no-include-email --region ap-northeast-1 --profile dev)
docker image build --no-cache=true -f ./Dockerfile -t test-repo:imagetag .
docker tag test-repo:imagetag xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/test-repo:imagetag
docker push xxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/test-repo:imagetag
※xxxxxxxxxxxはAWSアカウントID
### imageのアップロード後はbuild時に作成された不要なコンテナとイメージを削除する
docker container ls -a
docker container rm ~~~~
docker image ls
docker image rm -f ~~~~
VagrantでDocker環境構築すると楽
https://www.vagrantup.com/docs/provisioning/docker.html
https://www.vagrantup.com/docs/docker/basics.html
cat db01.tar | docker image import - postgres_import:11
$ docker image pull elixir
$ docker container run -itd -p 4000:4000 --name ex01 -h ex01 elixir:latest /bin/bash
$ docker container exec -it ex01 /bin/bash
$ apt-get update
$ apt-get install -y inotify-tools
$ apt-get install -y vim
$ mix archive.install hex phx_new
$ mix phx.new sample --no-webpack --no-ecto
$ cd sample/
$ iex -S mix phx.server
http://localhost:4000/ or http://ホストのIP:4000/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment