ドッカー他の二つのトピック:DockerHubとコンテナネットワーク

いかなる社会的関心は、我々は必見のJava /情報インタビューの公開、自由に利用可能な知識に「公園をブログ」、いいえ背景を返信することはできません。

こんにちは、みなさん、こんにちは、私は小さなシリーズと息子ます、今週、昨日は自分自身についてあなたに言った、そして今日は私たちが(ハハ、最近南部実際、雨の多い)少し雨南を学ぶために継続させるドッカーそれのシリーズです。以下は、テキストです。

以前の研究では、我々はドッカーの基本的な動作は基本的に習得していることを信じて、私たちが来ると私たちはドッカーの二つの他のトピックについて話:DockerHubとコンテナのネットワーク!

この記事はシリーズの第五で、前回の記事では、記事のより良い理解に貢献読んで:


  1. ドッカーエントリとインストール[ドッカーシリーズ-1]

  2. ドッカーコンテナ基本操作[ドッカーシリーズ-2]

  3. ドッカーコンテナ応用編[ドッカーシリーズ-3]

  4. 基本動作ドッカーミラー[ドッカーシリーズ-4]


DockerHub

GitHubのの提供などのDockerHubコードホスティングサービス、ドッカーハブは、ホスティングサービスをミラーイメージ、ドッカーハブアドレスhttps://hub.docker.com/を提供します。

ドッカーハブ読者は、検索、作成、共有およびイメージを管理することができます使用してください。ドッカーハブ上の2つのカテゴリに分かれミラーリング、公式の一つは、ユーザーがアップロードした平均的なユーザーをミラーミラー、普通のユーザーのクラスがあり、ミラーは、例えば、我々は以前など、nginxのMySQLを使用しています。国内のユーザーのために、彼らはドッカーハブアクセス速度が遅すぎると感じた場合、あなたは鏡に、このような網易など、いくつかの国内企業を、使用することができます。

  • https://c.163yun.com/hub#/m/home/

ここでは、公式ドッカーハブを証明するために使用されるように、関心のある読者は、網易のミラーサイトを試すことができます。

すべての読者の最初のオープンドッカーハブ、アカウントを登録し、これは比較的簡単ですが、私は詳細には触れません。

アカウント登録が成功した後、コマンドラインクライアントは、次のように我々だけで、登録したアカウントにログインすることができます:

ログインが成功したログインを表し成功を参照してください!

ログインに成功すると、その後はプッシュコマンドは自家製ミラーリングをアップロードすることができます。命名が仕様満たす必要があり、アップロードできるようにするには、自家製のミラーに注意してください、我々はDockerfileテキストを作成する前に名前空間は、ユーザー名でなければなりませんフォーマットは、例えば、ここでローカルミラーを再構築すると、次のように、ドッカーハブにアップロードします:namespace/name

正常にドッキングウィンドウ画像によって構築ローカルミラーを再構築するための最初の呼び出しドッキングウィンドウのビルドコマンドの後には、地元のコマンドを見ることができますwongsung / nginxのは、サーバーにアップロードミラーリングコマンドドッキングウィンドウのプッシュが続く、ミラーリングと呼ばれています。アップロードが成功した後、ドッカーハブをログに記録したユーザは、次のような、単に画像が正常にアップロードされている見ることができます。

この画像は、成功した次にアップロードされている表して参照してください、あなたは私はちょうど次のコマンドを使用して画像をアップロードして他の人がダウンロードできます。

  1. docker pull wongsung/nginx

後にプルダウン、それはコンテナの画像に基づいて直接作成することができます。このリーダーを作成する具体的なプロセスは、我々の以前のシリーズを参照することができます。

オートメーションを構築します

ビルオートメーションは、ドッカーハブDockerfileは、GitHubののBitbucketの倉庫またはリポジトリファイル備えたコネクタを使用することで、ドッカーハブを自動的に構築される自動ビルドなどの画像のうち、このように構成されたミラーは、また、信頼できる建設(信頼できるとして知られ、マークされます自動化されているため、ビルドプロセスに、同時に、来る方法を知っていますが、ミラーリング、Dockerfileを使用した場合、)この建物のミラーイメージをビルドを構築、他の人がコンテンツを視聴するのは自由です、倉庫がミラーリングされていることを保証することが可能です最新の。次のように具体的な施工手順は次のとおりです。

  • 倉庫を追加

まず、ドッカーハブにログオンし、以下に示すように、その後、自動ビルドを作成]を選択し、右上隅の作成]をクリックします:

ページへの新規参入者は、リンクアカウント]を選択し、[接続のGitHubを選択し、接続でページを選択し、以下のように、我々は、最初の接続を選択します。

次のように選択した後、ガイダンスに従って、GitHubのをログ認可操作を完了し、認証後のページが完成されています。

  • ミラーの構築

授权完成后,再次点击右上角的 Create 按钮,选择 Create Automated Build ,在打开的页面中选择 GitHub ,如下两张图:


这里展示了刚刚关联的 GitHub 上的仓库,只有一个 docker ,然后点击进去,如下:

填入镜像的名字以及描述,然后点击 Create 按钮,创建结果如下:

如此之后,我们的镜像就算构建成功了,一旦 GitHub 仓库中的 Dockerfile 文件有更新, Docker Hub 上的镜像构建就会被自动触发,不用人工干预,从而保证镜像始终都是最新的。

接下来,用户可以通过如下命令获取镜像:

  1. docker pull wongsung/nginx2

获取到镜像之后,再运行即可。

有没有觉得很神奇!镜像更新只要更新自己的 GitHub 即可。镜像就会自动更新!事实上,我们使用的大部分 镜像都是这样生成的。

构建自己的 DockerHub

前面我们使用的 Docker Hub 是由 Docker 官方提供的,我们也可以搭建自己的 Docker Hub ,搭建方式也很容器,因为 Docker 官方已经将 Docker 注册服务器做成镜像了,我们直接 pull 下来运行即可,没有没很酷!。具体步骤如下:

  • 拉取镜像

运行如下命令拉取registry官方镜像:

  1. docker pull registry

 

  • 运行

接下来运行如下命令将registry运行起来,如下:

  1. docker run -itd --name registry -p 5000:5000 2e2f252f3c88

运行成功后,我们就可以将自己的镜像提交到registry上了,如下:

这里需要注意的是,本地镜像的命名按照 registryHost:registryPort/imageName:tag 的格式命名。

容器运行在宿主机上,如果外网能够访问容器,才能够使用它提供的服务。本文就来了解下容器中的网络知识。

暴露网络端口

在前面的文章中,我们已经有用过暴露网络端口相关的命令了,即 -p 参数,实际上,Docker 中涉及暴露网络端口的参数有两个,分别是 -p-P 。下面分别来介绍。

  • -P

使用 -P,Docker 会在宿主机上随机为应用分配一个未被使用的端口,并将其映射到容器开放的端口,以 Nginx 为例,如下:

可以看到,Docker 为应用分配了一个随机端口 32768 ,使用该端口即可访问容器中的 nginx(http://lcalhost:32768)。

  • -p

-p 参数则有几种不同的用法:

  • hostPort:containerPort

这种用法是将宿主机端口和容器端口绑定起来,如下用法:

如上命令表示将宿主机的80端口映射到容器的80上,第一个 80 是宿主机的 80 ,第二个 80 是容器的 80 。

  • ip:hostPort:containerPort

这种是将指定的 ip 地址的端口和容器的端口进行映射。如下:

将 192.168.0.195 地址的80端口映射到容器的80端口上。

  • ip::containerPort

这种是将指定 ip 地址的随机端口映射到容器的开放端口上,如下:

 

总结

本文主要向大家介绍了 DockerHub 和容器网络,DockerHub 是我们容器的集散中心,网络则使我们的容器有办法对外提供服务。

参考资料:

[1] 曾金龙,肖新华,刘清.Docker开发实践[M].北京:人民邮电出版社,2015.

Java 极客技术公众号,是由一群热爱 Java 开发的技术人组建成立,专注分享原创、高质量的 Java 文章。如果您觉得我们的文章还不错,请帮忙赞赏、在看、转发支持,鼓励我们分享出更好的文章。

 

推荐阅读

面试系列

 

面试你应该知道的 MySQL 的锁

聊聊面试中的 Java 线程池

一个经典面试题:如何保证缓存与数据库的双写一致性?

今天来聊Java ClassLoader

面试中的最常被问到的两种锁

面试必备的分布式事物方案

 

Docker 系列

Docker 入门及安装[Docker 系列-1]

Docker 容器基本操作[Docker 系列-2]

Docker 容器高级操作[Docker 系列-3]

Docker 镜像基本操作[Docker 系列-4]

 

おすすめ

転載: www.cnblogs.com/justdojava/p/11271349.html