概要
前回の記事で作成したAWSのEC2のt2.microのAlmaLinux9.3を作成しました。
このまま開発環境として利用すると、いろいろなツールやライブラリを入れることになります。
時間が経つにつれてツールやライブラリの数が増えるため、管理が大変になります。
それを防ぐために、EC2上に仮想環境を作成し、作成した仮想環境上で開発をできる環境を作成します。
今回は、仮想環境を構築するためのものとしてDockerを入れます。
Dockerをインストールする参考としては、Dockerの公式ページを参照しました。
Dockerのインストール方法
今回は、dnfコマンドを使ってDockerをインストールしていきたいと思います。
下記のコマンドを実行してDockerのリポジトリをAlmaLinuxに追加します。
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
上のコマンドを実行すると、下図のようにでます。
この後に下記のコマンドを使ってDockerのインストールを行います。
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
この後下図のように出るので、「y」を入力して「Enter」を押します。
その後、下図のように出るので同様に「y」を入力して「Enter」を押します。
下記のように「Complete!」と出れば問題ありません。
docker composeのバージョンは下記で確認できます。
docker compose version
上記のコマンドを実施すると下記のようにバージョンが表示されます。
コンテナが動くことを確認
今回は、latestのpythonコンテナを作成することにしました。
Docker公式のページは下記です。
コンテナのイメージをプルするコマンドは下記になります。
sudo docker pull python:latest
上記のコマンドを実行すると下図のようになります。
ちゃんとコンテナイメージがプルされていることを確認するためのコマンドは下記です。
sudo docker images
上記のコマンドを実行すると下図のように追加されたコンテナイメージの一覧が表示されます。
下記のコマンドを使うとコンテナのイメージからコンテナを立ち上げることができます。
sudo docker run -it python
上記のコマンドを実行すると下記のようにコンテナに入ることができるので、今回の場合だとそのままPythonのプログラムを実行することができます。
注意点
Dockerをインストールした後の注意点です。
もし、EC2を再起動した場合は、Dockerが落ちているため下記のようなエラーが出ます。
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
なので下記のコマンドを実行してDockerを起動するようにしてください。
sudo service docker start
上記のコマンドを実行すると下記のように表示され、Dockerを再度使えるようになります。
Dockerコマンドをsudoなしで実行できるようにする方法(2023/12/17追記)
Dockerコマンドを実行するときに毎回sudoを付けていると時間がかかるので、sudoなしで実行できるように設定しました。
そもそもDokcerコマンドを実行するときにsudoがいる理由は、dockerのユーザーグループにユーザーが含まれていないためだそうです。
公式には下記のように記載されています。
Receiving errors when trying to run without root?
The
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repositorydocker
user group exists but contains no users, which is why you’re required to usesudo
to run Docker commands. Continue to Linux postinstall to allow non-privileged users to run Docker commands and for other optional configuration steps.
なので、Dockerのユーザーグループにユーザーを追加すれば解決します。
この方法に関してはこちらの記事を参考にしながら実行しました。
「Docker」というグループを下記のコマンドで作成します。
sudo groupadd docker
もしすでにある場合は下図のように既にあるよという警告がでます。
このグループに下記のコマンドでユーザーを所属させます。
sudo usermod -aG docker $USER
実行すると現在ログインしているユーザーが所属するグループに「Docker」が追加されます。
私の環境だと下図のように「ec2-user」が追加されました。
その後Dockerグループのセッション情報を最新にするために下記のコマンドを実行します。
newgrp docker
上記のコマンドを実行すると、すぐに下記のようにDockerコマンドをsudoなしで実行できます。
まとめ
これで、EC2のAlmaLinux9.3にDockerを入れることができました。
次回からは、Docker上に開発環境を作成するためにイメージを作成していきたいと思います。
コメント