プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Docker
  • 【Docker】「docker container run 」や「ポートフォワーディング」…
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Docker】「docker container run 」や「ポートフォワーディング」、「リンク機能」

12.15

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

docker container run [イメージ名:タグ名](docker run [イメージ名:タグ名])

Dockerイメージを探し出してコンテナを起動します。(探す先はローカルに見つからなければインターネット上まで探しに行きます。)、「docker pull」、「docker create」、「docker start」コマンドを3つ続けて実行した物と同じ動作になります。

ビルドやpullしたDockerイメージからDockerコンテナを作成して実行します。デフォルトではターミナルのフォアグラウンドでコンテナが動き続けてしまいます。

-dオプション

バックグラウンドでDockerコンテナを実行させます。

-pオプション [ホスト側のポート:コンテナ側のポート番号]

コンテナの外からコンテナ内へ通信をポートフォワーディングできます。例えば、「8080:80」となっていた場合はローカルの8080ポートにアクセスすればコンテナ内の80番ポートにアクセスすることが可能ということです。

なお、-pオプションの任意のホスト側のポートは省略することが可能です。その場合はエフェメラルポート(ホストOS側で空いているポート)が自動で割り当てられることになります。どのポートが割り当てられているかは「docker container ls」コマンドの「PORTS」にてわかります。

Dockerでのポートフォワーディングとは?

ホストマシンのポートをコンテナポートに紐付けて、コンテナの外から来た通信をコンテナポートに紐づけることができる機能です。この機能により、コンテナの外からでもコンテナ内のポートを利用することができるようになります。

ポートフォワーディングの利用例

  • コンテナ側でHTTPリクエストを受けるアプリがあった場合にコンテナ外からのリクエストを受けたい場合

--name コンテナ名

コンテナ名をつけれます。後で停止させる際にいちいち「docker container ls」で自動生成されたコンテナ名やコンテナIDを調べなくても良いので楽です。開発用途ではしばしば利用されますが、次々に実行停止破棄のコンテナライフサイクルを回す本番環境においては同名コンテナを削除しなければならなくなりシステムが一時停止してしまうので使いません。

--rm

停止と同時にコンテナの破棄も行います。

linkオプション

レガシーなリンク機能のためいずれは廃止されるようです。

リンク機能自体はDockerのネットワークを構築すれば実現することが可能なのでそれほど使う機会はないかと思いますが、過去構築されたDocker環境であればたびたび使われているのを見る機会があるかと思いますので覚えておきましょう。

1
docker run --link [コンテナ名 or コンテナID]:[リンク先コンテナの別名(任意なのでなくても良い)]

動作

別のコンテナに別名(エイリアス)を使って通信できるようになる。

linkオプションを使わなくてもIPアドレスを使って通信が可能ですが使った方がより直感的に操作できます。仕組みとしてはリンク元のコンテナの「/etc/hosts」ファイルにエイリアス名とIPアドレスの対応が記録されます。

環境変数が起動したコンテナで追加される。

リンク元のコンテナに対してリンク先コンテナの環境変数が自動で追加されます。

コマンドは省略できる。

例えば、「docker container run」は「docker run」のように省略してタイプ数を減らすことも可能です。ただ、何をしているコマンドなのかわかりづらい場合もあるのでできるだけ省略せずにコマンドを記入する方が良い場合もあるでしょう。

スポンサーリンク
  • 2019 12.15
  • miyabisan2
  • コメントを書く
  • Docker
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 11.02

    【Docker】基本、「マウント(Volumes、bind mounts、tmpfs mounts)」の種類

  2. 2019 12.15

    【Kubernetes】「Kubernetes(クバネティス)」の概要

  3. 2019 12.30

    【Docker】Dockerイメージの基本、「タグ」について

  4. 2019 12.23

    【Docker】Ruby on Railsのコンテナを作成して起動するまで。

  5. 2019 12.31

    【Docker】コンテナに接続する方法

  6. 2019 12.30

    【Docker】「docker build」時に行われていること

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Docker】コマンドまとめ(CLI)

【Docker】Dockerコンテナのライフサイクル

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー