IT業界にいる場合は、洞窟の中に住んでいるか、世界の他の地域から完全に遮断されている遠隔地に住んでいない限り、Dockerについて聞いたことがあるはずです。 Dockerは、開発者がアプリケーションを開発およびデプロイする方法に革命をもたらしたオープンソースのコンテナー化テクノロジーです。これにより、開発チームはコンテナー内でアプリケーションを構築、管理、およびデプロイできます。コンテナは、独自のライブラリと依存関係をパックするスタンドアロンのビルド済みソフトウェアパッケージです。コンテナは、ホストオペレーティングシステムと相互に完全に分離して実行されます。
Dockerには計り知れないメリットがあります。コンテナ化する前は、開発者はさまざまなLinuxフレーバーでコードを記述してデプロイするときに問題に遭遇していました。アプリケーションは、あるシステムでは完全に機能し、別のシステムでは失敗します。 Dockerはコードのデプロイを標準化し、依存関係の問題やエラーが発生することなく、アプリケーションがさまざまなコンピューティング環境でシームレスに実行できるようにします。さらに、コンテナは規模の経済に大きく貢献します。 Dockerはリソースに優しく、軽量で、非常に効率的です。
このガイドでは、Arch LinuxにDockerをインストールし、Dockerを使用してコンテナーを実行する方法も学習します。
前提条件
- SSHアクセスを使用したArchLinuxインスタンス
- 構成されたsudoユーザー
- 安定したインターネット接続
ステップ1)ArchLinuxにDockerをインストールする
Dockerをインストールするために使用できるさまざまな方法があります。 Archコミュニティリポジトリでホストされている安定したパッケージをインストールするか、AURからインストールできます。
ただし、示されているコマンドを使用して、リポジトリからArchLinuxにDockerをインストールします。
$ sudo pacman -S docker
ステップ2)Dockerの管理
Dockerは、ApacheやSSHなどの他のサービスと同じようにデーモンサービスとして実行されます。これは、Dockerサービスを開始、停止、再起動、有効化できることを意味します。
インストールが完了したら、dockerを起動し、以下のコマンドを使用して起動時に起動できるようにします。
$ sudo systemctl start docker $ sudo systemctl enable docker
Dockerサービスが実行されていることを確認するには、次のコマンドを発行します。
$ sudo systemctl status docker
以下の出力は、Dockerが稼働していることを明確に示しています。
dockerを停止するには、次のコマンドを呼び出します。
$ sudo systemctl stop docker
さらに、表示されているdocker versionコマンドを使用して、実行しているDockerのバージョンを確認できます。
$ sudo docker version
dockerのテストと使用方法
すべてが期待どおりに機能しているかどうかをテストするには、次のdockerコマンドを実行して、「hello-world」コンテナーを起動します
$ sudo docker run hello-world
コマンドが呼び出されると、dockerはDockerハブに接続し、「hello-world」と呼ばれるdockerイメージをダウンロードします。次に、Dockerは、「Hello fromDocker!」というメッセージをストリーミングする実行可能スクリプトを実行する新しいコンテナを作成します。
実行せずにDockerハブからイメージをダウンロードまたはプルするには、次の構文を使用します:
$ sudo docker pull
たとえば、Nginxイメージをプルするには、次のコマンドを実行します:
$ sudo docker pull nginx
システムにあるイメージを確認するには、次を呼び出します。
$ sudo docker images
出力から、これまでに2つのイメージがあることがわかります。以前にダウンロードしたNginxイメージとhello-worldイメージです。出力には、リポジトリ、画像タグ、画像ID、変更日、画像のサイズなどの追加情報が表示されます。
イメージを実行するには、次のコマンドを呼び出します。
$ sudo docker run
ただし、画像を直接実行すると、画像は通常フォアグラウンドで実行されるため、端末が応答しなくなる可能性があります。したがって、-dオプションを使用してバックグラウンドで実行することをお勧めします。
たとえば、Nginxイメージをバックグラウンドで実行するには、次のコマンドを実行します。
$ sudo docker run -d nginx
現在実行中のコンテナを確認するには、次のコマンドを発行します。
$ sudo docker ps
実行中のコンテナと以前に停止されたコンテナの両方を表示するには、次のコマンドを実行します。
$ sudo docker ps -a
以下の出力は、現在のNginxコンテナと以前に実行した「Hello-world」コンテナを示しています。
コンテナーを停止するには、dockerstopコマンドに続けてコンテナーIDを使用します。たとえば、Nginxコンテナを停止するには、次のコマンドを実行します。
$ sudo docker stop 968ff5caba7f
OSイメージから生成された一部のコンテナでは、ユーザーの操作が必要になる場合があります。たとえば、Ubuntuコンテナイメージを操作し、シェルにアクセスしてコマンドを実行したい場合があります。これを実現するには、-itフラグを使用します。
これをわかりやすく説明するために、Ubuntu20.04Dockerイメージをダウンロードします。
$ sudo docker pull ubuntu:20.04
次に、シェルにアクセスして、コンテナ内でコマンドを実行します。
$ sudo docker run -it ubuntu:20.04
これを実現するために、Webサーバーコンテナを実行してそのポートをホストシステムにマップしたい場合があります。表示されている-pオプションを使用してください
$ sudo docker -p 8080:80 nginx
ポート80は、Nginxコンテナがリッスンしているポートであり、ホストのポート8080にマッピングされています。次のように、ホストのIPアドレスを使用してNginx Webサーバーにアクセスすることで、これをテストできます。
http:// host-ip:8080
結論
Dockerは間違いなく、特にDevOPsの分野で強力で堅牢なツールです。ワークフローを合理化し、開発者がさまざまなコンピューティング環境に伴う不整合なしにアプリケーションをシームレスに構築および展開できるようにします。 Dockerコマンドの使用法に関する限り、表面をかじっただけです。その他のドキュメントについては、ビギナーズガイドをご覧ください。さらに、Dockerをナビゲートするのに役立つ公式ドキュメントがあります。