dockerでコンテナとブラウザを接続する
コンテナとブラウザを接続するためには以下のコマンドを使う
docker container run -p <ブラウザのポート番号>:<サーバーのポート番号> <サーバーのイメージ名>
そして、コンテナとブラウザが接続できているかを確認する。
localhost:3000
例
nginxはhttpサーバーでポート番号80番で待ち受けているので、ブラウザの3000番とnginxの80番を接続させるには以下のコマンドを打つことで実現できる。
docker container run -p 3000:80 nginx
そしてブラウザで以下のURLで3000番にアクセスすることでnginxに接続できる。
localhost:3000
Dockerネットワークでコンテナどうしを接続する
ネットワークを指定せずにコンテナを作成すると自動的にbridge
ネットワークに接続される。
今回は自分でネットワークを作成して、その自分が作ったネットワークにコンテナを接続するようにする。
①Dockerネットワークを作成する
以下のコマンドでネットワークを作成する
docker network create <ネットワーク名>
②Dockerネットワークが作成されたかを確認する
以下のコマンドでDockerネットワークが作成されたかを確認する。
docker network ls
③接続するコンテナを作成する
以下のコマンドで自分が作ったネットワークとコンテナを接続する
docker container run --network <ネットワーク名> <イメージ名>
例
my-net
というネットワークを作成して、そこでhttpサーバーであるnginx
とubuntu
のコンテナを作成してubuntu
からnginx
に接続する。
①まずmy-net
というネットワークを作成する
docker network create my-net
②ネットワークが作成できたか確認する
docker network ls
③ubuntu
のイメージをDockerfileで作成する。
Dockerfile
FROM ubuntu:22.04
RUN apt update
RUN apt install -y iputils-ping curl
CMD ["bash"]
④ubuntu
のイメージをビルドする。
docker image build -t ubuntu-image .
⑤ubuntu
コンテナを作成して自分が作ったネットワークであるmy-net
に接続する
docker container run -itd --name ubuntu-container --network my-net ubuntu-image
⑥nginx
コンテナを作成して自分が作ったネットワークであるmy-net
に接続する
docker container run -itd --name nginx-container --network my-net nginx
⑦nginx
コンテナのIPアドレスを調べる
docker network inspect my-net
⑧ubuntu
コンテナの中にbash
で入る
docker container exec -it ubuntu-container bash
⑨ubuntu
コンテナの中で以下のコマンドでnginx
コンテナにアクセスする
curl http://<nginxのIPアドレス>
もしくは、名前解決
を使ってnginxのコンテナ名を指定することでも実現する
curl http://<nginxのコンテナ名>
例
curl http://nginx-container
Dockerネットワークのいろいろなコマンド
ネットワークの詳細情報をしるコマンド
docker network inspect <ネットワーク名>
ネットワークを削除するコマンド
docker network rm <ネットワーク名>