#Docker はどのようにイメージをカスタマイズしますか?
1. docker テクノロジーを利用するには、まず docker パッケージをインストールする必要があります
今回は docker-engine-1.12.1-1.el7 を使用しました。 .centos.x86_64.rpm; docker テクノロジは、ローカル マシンの基盤となるシステムに基づいており、そのシステム上でアプリケーションがパッケージ化されて配信されます。これにより、コンテナーをプロセスと同じくらい早く開始できます。Docker テクノロジーに基づいて、必要な最小限のシステム環境をミラーとしてカプセル化し、プロセスのように起動できます。
2. カスタム docker イメージの作成まず、docker 公式 Web サイトから docker イメージをダウンロードします
docker search docker docker pull docker
公式にあるイメージ最小限のインストールなので、最初に yum ソースを設定し、よく使われるソフトウェアを centos イメージにインストールし、httpd と sshd を起動する必要があります。具体的な操作は次のとおりです:
yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm mkdir testcd testtouch Dockerfile vim Dockerfile FROM centos:latest RUN rm -f /etc/yum.repos.d/* ADD centos7.repo /etc/yum.repos.d/centos7.repo RUN yum -y install httpd openssh-server net-tools bash-completion.noarch \ iproute vim-enhanced EXPOSE 80 22 RUN echo "123456" |passwd --stdin root RUN /usr/sbin/sshd-keygen ENV EnvironmentFile=/etc/sysconfig/sshd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is centos1:httpd">index.html ENV EnvironmentFile=/etc/sysconfig/httpd ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
注:
EXPOSE は、開いているコンテナのポートを指定します。
ADD は、現在のディレクトリ内のファイルをコンテナ内の指定されたディレクトリに転送します。これは現在のパスである必要があります
RUNコンテナ内でどのコマンドを実行するかを指します。
FROM はソース イメージ、つまり、このイメージがどのイメージに基づいているかを指定します。
WORKDIR は指定されたコンテナ内の作業ディレクトリであり、centos システムの cd コマンドに相当します
ENV は環境変数を定義します
CMD はコンテナの起動後に実行される最初のコマンドを指定します[] を引用符で区切って使用する必要があります。オプションがある場合は、カンマで区切ります。例: ["/usr/sbin/sshd", "-D"]
作成されるファイルは Dockerfile という名前にする必要があります
これらのコマンドを手動で書きたい場合は、比較してください。複雑です。基本イメージを入力してさまざまなコマンドを実行し、履歴を使用してコマンドを表示し、cp コマンドを使用して、上記の対応する形式に置き換えることができます。
3. 起動スクリプトを作成する Docker イメージの CMD は、コンテナーの起動後に実行される最初のデフォルト コマンドであるため、 CMD A コマンドのみを記述します。この場合、sshd と httpd という 2 つのプログラムを起動したいため、スクリプトを記述して CMD にスクリプトを直接実行させる必要があります。
vim qd.sh#!/bin/bash/usr/sbin/sshd -D & /usr/sbin/httpd -DFOREGROUND :wq
4. ミラーを作成します現在のディレクトリで実行する必要があります
docker build -t wang:sh2 .
5. イメージを開始し、コンテナーのポートをマップします。
docker run -d -p 80:80 -p 2022:22 wang:sh2
6. アクセスの検証
firefox http://192.168.1.194(物理机) ssh -p 2022 192.168.1.194
7. 拡張機能最初に sshd サービスのミラーを作成してから、Make することもできます。 sshd イメージに基づく httpd コンテナー:
im Dockerfile FROM wang:sshd RUN yum -y httpd EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is httpd and sshd">index.html ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
以上がDocker がイメージをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。