CentOS7はDockerサービスをインストールします

   著作権表示:この記事はShaonPuppetによるオリジナル記事です。転載の元のアドレスを教えてください。ありがとうございます。 https://blog.csdn.net/wh211212/article/details/53171611

Docker#の紹介

Docker公式サイト:[http://www.docker.com/](http://www.docker.com/)
Docker公式ドキュメント:[https://docs.docker.com/](https://docs.docker.com/)
Docker Githubアドレス:[https://github.com/docker/docker](https://github.com/docker/docker)
Dockerウェアハウス:[https://hub.docker.com/](https://hub.docker.com/)
Docker中国人コミュニティ:[http://www.docker.org.cn/book/docker](http://www.docker.org.cn/book/docker)
Dockerアプリケーションのシナリオ:[https://www.zhihu.com/question/22969309](https://www.zhihu.com/question/22969309)

1.1、 Dockerとは何ですか?

Dockerは、Go言語に基づくクラウドオープンソースプロジェクトです。2013年の初めに誕生しました。元のイニシエーターはdotcloudでした。
Dockerは、あらゆるアプリケーション向けの軽量でポータブルな自給自足のコンテナを簡単に作成できるオープンソースエンジンです。開発者は、VM(仮想マシン)、ベアメタル、OpenStackクラスター、その他の基本的なアプリケーションプラットフォームなど、実稼働環境でバッチで展開できるコンテナーをラップトップでコンパイルおよびテストしました。
ドッカー中国のコミュニティ
Dockerの主な目標は'Build,Ship and Run Any App Anywhere',つまり、アプリケーションコンポーネントのパッケージ化(Packing)、配布(Distribution)、展開(Deployment)、操作(Runtime)などのライフサイクル管理を通じて、アプリケーションコンポーネントレベルの「1つのパッケージ、複数の実行」を実現します。ここでのアプリケーションコンポーネントは、Webアプリケーション、データベースサービスのセット、またはオペレーティングシステムやエディタのいずれかです。

1.2、 なぜDockerを使用するのですか?

Dockerは適切な場所に、適切なタイミングで、適切なトレンドに従っています--つまり、アプリケーションの効率的な構築です。
より迅速な配信と展開。
リソースのより効率的な使用
更新の展開が容易
よりシンプルな更新管理
Dockerと仮想マシンの比較
 Dockerコンテナは非常に高速で、開始と停止は数秒で実現できます。これは、従来の仮想マシン方式よりもはるかに高速です。
 Dockerコンテナはシステムリソースをほとんど必要とせず、何千ものDockerコンテナをホスト上で実行できます
 Dockerは、Gitのような操作を使用して、ユーザーが簡単な手順と低い学習コストでアプリケーションイメージを取得、配布、更新できるようにします。
 Dockerは、Dockerfile構成ファイルを介して柔軟な自動作成および展開メカニズムをサポートし、作業効率を向上させます

1.3、 仮想化とDocker

 仮想化は一般的な概念であり、さまざまな分野でさまざまな理解があります。コンピュータの分野では、一般的にコンピューティング仮想化、またはサーバー仮想化を指します。
 仮想化の中核は、リソースを抽象化することです。目標は、多くの場合、同じホスト上で複数のオペレーティングシステムまたはアプリケーションを実行し、それによってシステムリソースの使用率を向上させると同時に、コストを削減し、管理を容易にし、障害耐性を高めることです。
 仮想化は、ハードウェアベースの仮想化とソフトウェアベースの仮想化に分けることができます。ソフトウェアベースの仮想化は、アプリケーション仮想化とプラットフォーム仮想化に分けられます。プラットフォームの仮想化は、次のサブカテゴリに分類されます。
   完全に仮想化されています。仮想マシンは、基盤となる完全なハードウェア環境と特権命令の実行プロセスをシミュレートし、ゲストオペレーティングシステムを変更する必要はありません。 VMware Workstation、VirtulBox、QEMUなど。
   ハードウェア支援仮想化。ハードウェア支援サポートを使用して機密性の高い命令を処理し、完全な仮想化を実現するため、Xen、KVMなどのクライアントオペレーティングシステムを変更する必要はありません。
   部分的に仮想化されています。一部のハードウェアリソースのみが仮想化されており、クライアントのオペレーティングシステムを変更する必要があります。
   準仮想化。ハードウェアインターフェイスの一部はソフトウェアの形でゲストオペレーティングシステムに提供されており、ゲストオペレーティングシステムを変更する必要があります。
   オペレーティングシステムレベルの仮想化。カーネルは、複数の仮想オペレーティングシステムインスタンスであるDockerテクノロジを作成することにより、さまざまなプロセスを分離します。

Dockerのインストール#

Install Dockerは、コンテナにアプリケーションを自動的にデプロイできるオペレーティングシステムレベルの仮想化ツールです。

[ root@linuxprobe~]# yum -y install docker
[ root@linuxprobe~]# systemctl start docker
[ root@linuxprobe~]# systemctl enable docker 
[ root@linuxprobe ~]# systemctl status docker   #ドッカーのステータスを表示する
● docker.service - Docker Application Container Engine
 Loaded:loaded(/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active:active(running) since Wed 2016-10-2619:38:40 CST; 12s ago
  Docs: http://docs.docker.com
 Main PID:3762(docker-current)
 CGroup:/system.slice/docker.service
   └─3762/usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald

Oct 2619:38:39 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:39.844803185+08:00" level=info msg="devmapper: Successfully created filesystem xfs on device docker-253:0-104354176-base"
Oct 2619:38:39 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:39.994708787+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.018129400+08:00" level=info msg="Firewalld running: true"
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.294869786+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can ...red IP address"
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.567994904+08:00" level=info msg="Loading containers: start."
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568039413+08:00" level=info msg="Loading containers: done."
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568047306+08:00" level=info msg="Daemon has completed initialization"
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568058527+08:00" level=info msg="Docker daemon" commit=cb079f6-unsupported execdriver=native-0.2 graphdriver=devicemapper version=1.10.3
Oct 2619:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.572491688+08:00" level=info msg="API listen on /var/run/docker.sock"
Oct 2619:38:40 linuxprobe.org systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
[ root@linuxprobe ~]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ... 
latest: Pulling from docker.io/library/centos
08 d48e6f1cff: Pull complete 
Digest: sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Status: Downloaded newer image for docker.io/centos:latest
[ root@linuxprobe ~]# docker run centos /bin/echo "Welcome to the Docker World"
Welcome to the Docker World
[ root@linuxprobe ~]# docker run -i -t centos /bin/bash
[ root@82699d79557c /]# uname -a
Linux 82699d79557c 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 1922:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[ root@82699d79557c /]# exit
exit
[ root@linuxprobe ~]# #back
[ root@linuxprobe ~]# docker run -i -t centos /bin/bash
[ root@a05c7fd0a54f /]# [root@linuxprobe ~]# 
[ root@linuxprobe ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a05c7fd0a54f        centos              "/bin/bash"24 seconds ago      Up 23 seconds                           trusting_fermat
[ root@linuxprobe ~]# docker attach a05c7fd0a54f  # connect docekr process
[ root@a05c7fd0a54f /]# [root@linuxprobe ~]# docker kill a05c7fd0a54f  # kill docker process
a05c7fd0a54f
[ root@linuxprobe ~]# docker ps #実行中のdockerサービスを表示する
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Docker:ミラー番号を追加

[ root@linuxprobe ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED                  SIZE
docker.io/centos        latest              0584b3d2cf6d        Less than a second ago   196.5 MB
# start a Container and install httpd
[ root@linuxprobe ~]# docker run centos /bin/bash -c "yum -y update; yum -y install httpd"[root@linuxprobe ~]# docker ps -a | head -2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
f36383194ad4        centos              "/bin/bash -c 'yum -y"2 minutes ago       Exited(0)45 seconds ago                         jolly_cray
      elegant_wright
[ root@linuxprobe ~]# docker commit f36383194ad4 my_image/centos_httpd
[ root@linuxprobe ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED                  SIZE
docker.io/centos        latest              0584b3d2cf6d        Less than a second ago   196.5 MB
my_image/centos_httpd   latest              b0be2940865a        7 seconds ago            338.3 MB

アクセスコンテナ

root@linuxprobe ~]# docker run -it -p 8081:80 my_image/centos_httpd /bin/bash
[ root@2f0d06526d42 /]# /usr/sbin/httpd &[1]14[root@2f0d06526d42 /]# AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

[1]+ Done                    /usr/sbin/httpd
[ root@2f0d06526d42 /]# echo "httpd on Docker Container">/var/www/html/index.html # exit with Ctrl+p, Ctrl+q
[ root@2f0d06526d42 /]# [root@linuxprobe ~]# docker ps
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS                  NAMES
2 f0d06526d42        my_image/centos_httpd   "/bin/bash"54 seconds ago      Up 52 seconds       0.0.0.0:8081->80/tcp   hopeful_gates
[ root@linuxprobe ~]# docker ps -a | head -2
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                         PORTS                  NAMES
2 f0d06526d42        my_image/centos_httpd   "/bin/bash"27 minutes ago      Up 27 minutes                  0.0.0.0:8081->80/tcp   hopeful_gates

クライアントブラウザへのアクセス

Docker:Dockerfileを使用する#

[1] Dockerfileの形式は[INSTRUCTIONarguments]です。以下のINSTRUCTIONの説明を参照してください。
指示の説明
MAINTAINER生成された画像の作成者フィールドを設定します。
RUN Dockerイメージが作成されると、すべてのコマンドが実行されます。
CMDは、Dockerコンテナが実行されるときに任意のコマンドを実行します。
LABEL画像にメタデータを追加します。
EXPOSE実行時に指定されたネットワークポートでリッスンすることをDockerコンテナに通知します。
ADD新しいファイル、ディレクトリ、またはリモートファイルのURLをコピーします。
COPY新しいファイルまたはディレクトリをコピーします。 [ADD]との違いは、これ以上URLを指定することも、アーカイブファイルを自動的に抽出することもできないことです。
VOLUME指定された名前でマウントポイントを作成し、ローカルホストまたは他のコンテナから外部にマウントされたボリュームを格納するものとしてマークします。USERユーザー名またはUIDを設定します。
WORKDIR作業ディレクトリを設定します。

[ root@linuxprobe ~]# vim Dockerfile 
# create newFROM centos
MAINTAINER linuxprobe <[email protected]>
RUN yum -y install httpd
RUN echo "Hello LinuxProbe DockerFile">/var/www/html/index.html
EXPOSE 80
CMD ["-D","FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"][root@linuxprobe ~]# docker build -t web_server:latest . 
Sending build context to Docker daemon  21.5 kB
Step 1: FROM centos
 - - - > 0584 b3d2cf6d
Step 2: MAINTAINER linuxprobe <[email protected]>---> Running in 8064d0091e44
 - - - > 940 c8fbe4161
Removing intermediate container 8064d0091e44
Step 3: RUN yum -y install httpd
 - - - > Running in 3d37e4919fa9
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: mirrors.163.com
 * extras: ftp.sjtu.edu.cn
 * updates: mirrors.163.com
Resolving Dependencies
- - > Running transaction check
- - - > Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
- - > Processing Dependency: httpd-tools =2.4.6-40.el7.centos.4forpackage: httpd-2.4.6-40.el7.centos.4.x86_64
- - > Processing Dependency: system-logos >=7.92.1-1forpackage: httpd-2.4.6-40.el7.centos.4.x86_64
- - > Processing Dependency:/etc/mime.types forpackage: httpd-2.4.6-40.el7.centos.4.x86_64
- - > Processing Dependency: libaprutil-1.so.0()(64bit)forpackage: httpd-2.4.6-40.el7.centos.4.x86_64
- - > Processing Dependency: libapr-1.so.0()(64bit)forpackage: httpd-2.4.6-40.el7.centos.4.x86_64
- - > Running transaction check
- - - > Package apr.x86_64 0:1.4.8-3.el7 will be installed
- - - > Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
- - - > Package centos-logos.noarch 0:70.0.6-3.el7.centos will be installed
- - - > Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
- - - > Package mailcap.noarch 0:2.1.41-2.el7 will be installed
- - > Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package           Arch        Version                       Repository    Size
================================================================================
Installing:
 httpd             x86_64      2.4.6-40.el7.centos.4         updates      2.7 M
Installing for dependencies:
 apr               x86_64      1.4.8-3.el7                   base         103 k
 apr-util          x86_64      1.5.2-6.el7                   base          92 k
 centos-logos      noarch      70.0.6-3.el7.centos           base          21 M
 httpd-tools       x86_64      2.4.6-40.el7.centos.4         updates       83 k
 mailcap           noarch      2.1.41-2.el7                  base          31 k

Transaction Summary
================================================================================
Install  1Package(+5 Dependent packages)

Total download size:24 M
Installed size:31 M
Downloading packages:
warning:/var/cache/yum/x86_64/7/base/packages/apr-util-1.5.2-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for apr-util-1.5.2-6.el7.x86_64.rpm is not installed
Public key for httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total                                              382 kB/s |24 MB  01:05     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     :"CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
 Fingerprint:6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64(@CentOS)
 From       :/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : apr-1.4.8-3.el7.x86_64                                       1/6 
 Installing : apr-util-1.5.2-6.el7.x86_64                                  2/6 
 Installing : httpd-tools-2.4.6-40.el7.centos.4.x86_64                     3/6 
 Installing : centos-logos-70.0.6-3.el7.centos.noarch                      4/6 
 Installing : mailcap-2.1.41-2.el7.noarch                                  5/6 
 Installing : httpd-2.4.6-40.el7.centos.4.x86_64                           6/6 
 Verifying  : apr-1.4.8-3.el7.x86_64                                       1/6 
 Verifying  : httpd-tools-2.4.6-40.el7.centos.4.x86_64                     2/6 
 Verifying  : apr-util-1.5.2-6.el7.x86_64                                  3/6 
 Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64                           4/6 
 Verifying  : mailcap-2.1.41-2.el7.noarch                                  5/6 
 Verifying  : centos-logos-70.0.6-3.el7.centos.noarch                      6/6 

Installed:
 httpd.x86_64 0:2.4.6-40.el7.centos.4                                          

Dependency Installed:
 apr.x86_64 0:1.4.8-3.el7                                                      
 apr-util.x86_64 0:1.5.2-6.el7                                                 
 centos-logos.noarch 0:70.0.6-3.el7.centos                                     
 httpd-tools.x86_64 0:2.4.6-40.el7.centos.4                                    
 mailcap.noarch 0:2.1.41-2.el7                                                 

Complete!---> 3ce9abf4dfea
Removing intermediate container 3d37e4919fa9
Step 4: RUN echo "Hello LinuxProbe DockerFile">/var/www/html/index.html
 - - - > Running in 297d8d666c8d
 - - - > 3 d185363045b
Removing intermediate container 297d8d666c8d
Step 5: EXPOSE 80---> Running in 017db517e06a
 - - - > 5 c855e478c3c
Removing intermediate container 017db517e06a
Step 6: CMD -D FOREGROUND
 - - - > Running in 6add13fca3cb
 - - - > 7 a219d9fa6e1
Removing intermediate container 6add13fca3cb
Step 7: ENTRYPOINT /usr/sbin/httpd
 - - - > Running in da4671709ee1
 - - - > c0d84e256068
Removing intermediate container da4671709ee1
Successfully built c0d84e256068
[ root@linuxprobe ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED                  SIZE
docker.io/centos        latest              0584b3d2cf6d        Less than a second ago   196.5 MB
web_server              latest              c0d84e256068        36 seconds ago           338.3 MB
my_image/centos_httpd   latest              b0be2940865a        4 hours ago              338.3 MB
[ root@linuxprobe ~]# docker run -d -p 80:80 web_server 
c37d25a405a8e0599bf54fe77d78c807a520242a21ccb15b18d6b6ee4d13415b
[ root@linuxprobe ~]# docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                  NAMES
c37d25a405a8        web_server              "/usr/sbin/httpd -D F"6 seconds ago       Up 5 seconds        0.0.0.0:80->80/tcp     condescending_knuth
2 f0d06526d42        my_image/centos_httpd   "/bin/bash"              About an hour ago   Up About an hour    0.0.0.0:8081->80/tcp   hopeful_gat

Recommended Posts

CentOS7はDockerサービスをインストールします
CentOS7はDockerをインストールします
Centos7はDockerをインストールします
Centos7インストールdocker18
centos7インストールドッカー
CentOS6はDockerをインストールします
Centos8はDockerをインストールします
CentOS8-dnfインストールドッカー
centos6.5にDockerをインストールします
CentOS7はDockerCEをインストールします
Centos7にdockertransferをインストールします
Centosシステムにdockerをインストールします
1.5Centos7をインストールする
Centos7インストールjdkおよびパッケージサービスサービス
CentOS7にDockerを使用してMySqlをインストールする
コンテナ調査ノートCentOS7はDockerをインストールします
CentOS8-NFSサービスをインストールして構成する
CentOS6.8でdockerをインストールして使用する
Centos7オペレーティングシステムをDockerにインストールする
Centos6はPython2.7.13をインストールします
Centos7.3はnginxをインストールします
CentOSはRedmineをインストールします
Centos7はPython3.6をインストールします。
CentOS7はMySQLをインストールします
Centos7インストールprotobuf
CentOS7はGlusterFSをインストールします
ubuntu18.04インストールドッカー
CentOS7.4はZabbix3.4をインストールします
Centos6.5はTomcatをインストールします
CentOSはPython3.6をインストールします
VmwareはCentOS6をインストールします
centos7 install docker-ce 18.01.0
CentOS7.2はMariaDBをインストールします
CentOS7はHadoop3.0.0をインストールします
Centos7はPython2.7をインストールします
Centos7.6はseleniuをインストールします
CentOS7.3はZabbix3をインストールします
Centos7はLAMP + PHPmyadminをインストールします
CentOSインストールmysql
Dockerのインストール(CentOS7のインストール)
CentOSはopenjdk1.8をインストールします
CENTOS6.5インストールCDH5.12.1(1)
CentOSはPHPをインストールします
CentOS6はmist.ioをインストールします
CentOS7インストールmysql
centOsはrabbitMQをインストールします
CentOS7はMySQL5.6をインストールします
docker install ubuntu
Centos7はNginxをインストールします
CentOS6.5はCDH5.13をインストールします
CentosはPython3をインストールします
CentOSインストールjdk
centos7インストールnginx-rtmp
CentOS8はMySQL8.0をインストールします
Centos6.3はKVMをインストールします
CentOSはPostgreSQL9.1をインストールします
CentOS7はmysql8をインストールします
CentOS7ドッカーのインストール
CentOS7はJava1.8をインストールします
CentOS8はfastdfs6.06をインストールします
CentOS7はGitlabをインストールします