CentOS7にDocker環境を構築する
備忘録的に、CentOS7にDocker環境を構築する方法をメモ
事前準備
yumの更新
$ sudo yum update $ sudo yum upgrade
公式リポジトリの追加
$ yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Docker CEのインストール
特定のバージョンをインストールする場合
# 利用可能なバージョンの一覧を確認 $ yum list docker-ce.x86_64 --showduplicates | sort -r docker-ce.x86_64 17.06.ce-1.el7.centos docker-ce-stable $ sudo yum install -y docker-ce-<有効なバージョン文字列>
最新版をインストールする場合
$ sudo yum install -y docker-ce
Docker Composeのインストール
Docker Composeの最新版はGithubのリリースページを参照
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # ダウンロードしたバイナリに、実行可能権限を付与 $ chmod +x /usr/local/bin/docker-compose # version確認 $ docker-compose --version
Dockerの起動
$ sudo systemctl start docker # OS起動時にDockerが自動起動するよう設定 $ systemctl enable docker
Dockerコンテナの立ち上げ
ディレクトリ作成
$ mkdir docker-node $ cd docker-node/
Docker Compose定義
version: '3' services: app: image: node:lts # バージョン指定も可能 ex. node:12.16.1 container_name: docker-node # 任意のコンテナ名 tty: true volumes: - ./src:/src working_dir: "/src"
ここでdocker-compose up -d を実行すると以下のエラー文が表示される
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Dockerの権限がrootにのみ与えられていることが原因のエラーなので、以下で対処
- sudoを使う
- dockerコマンド実行用のグループを作成して、通常ユーザを加える
「dockerコマンド実行用のグループを作成して、通常ユーザを加える」で対応
# まずはdockerグループが作られているか確認 $ cat /etc/group | grep docker docker:x:992: # Dockerインストール時にdockerグループが作成されている
現在ログイン中のユーザをdockerグループに追加
$ sudo usermod -aG docker $USER # ユーザーがグループに追加されているか確認 $ groups $USER opc : opc adm wheel systemd-journal docker
ログアウトしてdocker-compose up -d を試してみると無事コンテナの作成に成功
$ docker-compose up -d Creating network "docker-node_default" with the default driver Pulling app (node:lts)... lts: Pulling from library/node 81fc19181915: Pull complete ee49ee6a23d1: Pull complete 828510924538: Pull complete a8f58c4fcca0: Pull complete 33699d7df21e: Pull complete 923705ffa8f8: Pull complete c214b6cd5b8c: Pull complete 4c73d8285dba: Pull complete 1c58ef740d94: Pull complete Creating docker-node ... done
参考URL