大家讲道理2017-04-21 10:58:11
このブログはあなたの問題を非常に明確に説明していると思います。注意深く読んでください。
http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html
Docker は、アプリケーションの自動デプロイメント ソリューションを提供することを目的としています。Linux システム上にコンテナ (軽量の仮想マシン) を迅速に作成し、設定ファイルを通じてアプリケーションの自動インストールを簡単に実現できます。とても便利です。コンテナーを使用するため、実稼働環境と開発環境を相互に影響を与えることなく簡単に分離できます。これは、Docker を実行する最も一般的な方法です。その他のプレイ方法には、大規模な Web アプリケーション、データベース デプロイ、継続的デプロイ、クラスター、テスト環境、サービス指向のクラウド コンピューティング、仮想デスクトップ VDI などが含まれます。
主観的な印象: Docker は Go 言語で書かれており、リソースの分離を実現するために cgroup を使用し、コンテナー テクノロジは Unix プロセスを独立して実行できる軽量の仮想化ソリューションを提供します。これは、安全で反復可能な環境でのソフトウェアの展開を自動化する方法を提供します。 LXC コマンドは少し複雑なので、興味がある方は、LXC をベースに以前に書いた記事 (JAVA PAAS クラウド プラットフォームの簡易版をゼロから構築する) を事前に確認してください。
関連する実装原理、関連する理論、アプリケーション シナリオなどについては、このシリーズの後半で説明します。ここでは、Docker に基づいて Tomcat オペレーティング環境を構築するための完全なマニュアルを簡単に説明します。まずまともなデモを作成すると、その効果がわかり、さらに前進するのに役立つ可能性があります。
環境
この記事のすべての環境では、ubuntu-13.10-server-amd64 は 64 ビット システムであることに注意してください。理論的には、他の仮想マシンも完全に実行可能です。
Dockerをインストールする
Docker バージョン 0.7 には、Linux カーネル 3.8 サポートと AUFS ファイル システムが必要です。
sudo apt-get アップデート
sudo apt-get install linux-image-extra-uname -r
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get アップデート
sudo apt-get install lxc-docker
sudo docker バージョン
Go バージョン (クライアント): go1.2
Git コミット (クライアント): 88df052
サーバーバージョン: 0.7.1
Git コミット (サーバー): 88df052
Go バージョン (サーバー): go1.2
最終安定バージョン: 0.7.1
sudo を削除します
Ubuntu では、Docker を実行するときに毎回 sudo とパスワードを入力する必要がありますが、これは非常に面倒です。ここで微調整して、現在のユーザーの実行権限を対応する Docker ユーザー グループに追加しましょう。
sudo グループドッカーの追加
sudoサービスDockerの再起動
ドッカーのバージョン
sudo再起動
インスタンス - ubuntu 仮想マシンを実行する Docker をインストールします
Docker がインストールされると、バックグラウンド プロセスが自動的に開始され、仮想マシン インスタンスをインストールできます (ここでは、公式デモで使用される学習/チュートリアル イメージを例として取り上げます)。
docker pull 学習/チュートリアル
インストールが完了したら、効果を見てください
新しくインストールされた仮想マシンを対話的に入力します
以下が表示されます:
インタラクティブ環境に入ったことを示します。
適切なアップデート
apt-get install openssh-server
どのSSD
/usr/sbin/sshd
mkdir /var/run/sshd
passwd #ユーザーのパスワードを入力します。SSH クライアントのログインを容易にするために、ここでは 123456 に設定しました
出口 #出口
操作したインスタンスのインスタンスコンテナIDを取得します
51774a81beb3 learn/tutorial:latest /bin/bash 3 分前 0 番出口 thirsty_pasteur
現在の操作のコンテナ ID が 51774a81beb3 であることがわかります。すべての操作を実行したら、簡単に SSH ログインできるように、操作を送信して保存する必要があることに注意してください:
このイメージ インスタンスをバックグラウンド プロセスとして長時間実行します:
ubuntu コンテナーで実行されている SSH サーバーはポート 22 を占有しており、-p 22 が指定されています。 -p 80:8080 は、ubuntu がポート 8080 で Tomcat を実行しますが、外部 (コンテナーの外) にマップされたポートは 80 であることを意味します。
ドッカー ps
871769a4f5ea learn/tutorial:latest /usr/sbin/sshd -D 約 1 分前 Up 約 1 分 0.0.0.0:49154->22/tcp, 0.0.0.0:80->8080/tcp focus_poincare
ランダムに割り当てられた SSH 接続ポート番号は 49154 であることに注意してください:
パスワードを入力したら入力できますか? SSH を制御したら、残りは非常に簡単です。JDK をインストールしたり、Tomcat をインストールしたりするだけです。それはあなた次第です。以下はインストール スクリプトです:
add-apt-repository ppa:webupd8team/java
apt-get アップデート
apt-get install -y wget
apt-get install oracle-java7-installer
java -バージョン
tar xvf apache-tomcat-7.0.47.tar.gz
cd apache-tomcat-7.0.47
bin/startup.sh
デフォルトでは、tomcat はポート 8080 を占有します。ミラー インスタンスを起動するときに、-p 80:8080 が指定されると、ubuntu ミラー インスタンス/コンテナーは、ホスト ポート 80 にマップされるポート 8080 を開きます。ホストの IP アドレスがわかっていれば、自由にアクセスできます。ホストマシン上で、curl を通じてテストしてください:
カール http://192.168.190.131
もちろん、ブラウザを使用してアクセスすることもできます。
実際の状況では、Tomcat はポート 80 を外部に直接開くことができない場合があります。これは通常、nginx/Apache またはファイアウォールの内側にあります。上記は単なるデモンストレーションです。
まとめ
Docker を使用して Tomcat ランタイム環境を構築するのは全体的に非常に簡単で、PAAS の存在を確認できます。はい、PAAS の基盤となるサービスとして Docker を使用すること自体は複雑ではありません。 ここで、スクリプト ファイルを使用してイメージ インスタンスを構築する方法と、Docker の実装原理とメカニズムについて説明します。