この記事では主に、Dockerを使用してCentOS環境イメージを作成し、それをAlibaba CloudのDockerイメージリポジトリにアップロードする方法を紹介します。必要な人は接続を通じてダウンロードできます。開発を行っていると、テストやデプロイのための環境が必要になることがよくあります。オープンソースプロジェクトを理解すると、それをデプロイして使用するための要件を満たす環境も必要になります。しかし、テスト環境が乱雑になることがあります。たとえば、Apache Druid をインストールしてデプロイする場合、デフォルトのポートを使用して起動すると、一部のポートが占有されているため、起動に失敗することがあります。デフォルトのポートを変更することはできますが、始めたばかりのユーザーにとって、いくつかのポートを手動で変更することは、プロジェクトに慣れていない人にとっては混乱を招く可能性があります。仮想マシンを介して新しい環境を作成することもできますが、より面倒です。Docker はより良い選択です。コンテナを起動して実行するには、いくつかのコマンドしかかかりません。国内のミラーソースを使用すると、ダウンロード速度が比較的高速です。使用していないときは、docker コマンドを使用して直接削除できます。独自の特定のニーズに合わせて、独自のニーズを満たすイメージを作成することもできます。これにより、高速プル、高速起動、高速削除、高速リリースが実現されます。 中国語環境基本版Centos7イメージ。 CentOS 7 イメージをベースに、vim、lsof、wget、tree、python-devel、c コンパイル環境、ssh サービスが追加されました。システムのルートパスワードは 2020 です: sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1 sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1 開発環境版Centos7イメージ。中国語環境基本バージョンイメージをベースに、JDK8、Git、Maven、Nginx、Node.js サービスが追加されました。システムのルートパスワードは2020です sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1 sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1 中国語環境基本版イメージ。 Centos7 イメージの開発環境バージョンをベースに MySQL 5.7 サービスが追加されました。システムのルートパスワードは2020 、 mysqlのルートユーザーのパスワードは123456です。 sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1 sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1 1 Dockerをインストールする# 1 システムにDockerがすでにインストールされているかどうかを確認する systemctl ステータス docker rpm -qa | grep -E "docker" ## 1.1 再インストールする場合は、まず古いバージョンのDockerをアンインストールしてください yum で docker-ce を削除します rm -rf /var/lib/docker ## 1.2 システムパッケージを更新する yum -y update # 2 次の Web サイトにアクセスし、Docker RPM パッケージをダウンロードします。# https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ # たとえば、wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm # 3 インストール yum install docker-ce-18.06.3.ce-3.el7.x86_64.rpm # 4 systemctl start dockerを起動する ## 情報を表示する docker info 2 国内ミラーソースの設定ここでの構成は Alibaba のミラーです。 Alibaba Cloud の公式 Web サイト (https://www.aliyun.com/) にアクセスし、アカウントにログインして、管理コンソール-->製品とサービス--> Elastic Compute --> Container Image Service --> Image Acceleratorに移動し、独自の専用アクセラレータ アドレスをコピーします。 :vim /etc/docker/daemon.json を実行します。 # 独自のミラーアドレスを追加し、保存して終了します { "レジストリミラー": ["https://xxxxxxxx.mirror.aliyuncs.com"] } ファイルを再読み込みしてDockerを再起動します systemctlデーモンリロード systemctl dockerを再起動します # 起動ステータスを確認する systemctl status docker 3 中国語環境基本版Centos7イメージを作成する3.1 DockerファイルDockerfile 形式では、環境内のディレクトリにある Dockerfile ファイルに次の構成コンテンツを配置します。最後に、ビルド コマンド Centos より:2003 年 7 月 8 日 環境変数LANG=zh_CN.UTF-8 \ 言語=zh_CN:zh \ LC_ALL=zh_CN.UTF-8 # ツールをインストールする yum update -y && \ を実行します。 yum 再インストール -y glibc-common && \ yum インストール -y telnet net-tools && \ yum すべてをクリーンアップ && \ rm -rf /tmp/* rm -rf /var/cache/yum/* && \ ロケール定義 -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \ ln -sf /usr/share/zoneinfo/アジア/上海 /etc/localtime # デフォルトのコマンドを定義します。 CMD ["bash"] ローカル画像を表示 # 画像を表示します。 2つのイメージが表示されます。1つは元のイメージで、もう1つはカスタム構成されたイメージdockerイメージです。 3.2 コンテナを起動する#1 走る。以下は、このコンテナにさらなる変更を加えます。 # -d は、コンテナをバックグラウンドで実行します。 # -p はポート マッピングを指定します。形式は、ホスト ポート: コンテナ ポートです。 # --name="yore_centos7" は、コンテナの名前を指定します。 # -h "hostname" は、コンテナのホスト名を指定します。 # -m はコンテナの最大メモリ使用量を設定します。 # --volume, -v ボリュームをバインドします # --privileged=false はコンテナが特権コンテナであるかどうかを指定します。特権コンテナはすべての機能を持ちます # --cap-add=[]、権限を追加します。権限の一覧については、http://linux.die.net/man/7/capabilities を参照してください。 docker run --privileged=true --cap-add SYS_ADMIN -e コンテナ=docker -it \ -p 30022:22 -p 30080:80 -h "ビッグデータ" \ --name="centos7_base" -d yore/centos7_v1:latest /usr/sbin/init # 2 コンテナの起動と停止## 2.1 コンテナを閉じるdocker stop $CONTAINER_ID ## 2.2 コンテナを起動する docker start $CONTAINER_ID ## 2.3 コンテナを削除する docker rm -f $CONTAINER_ID # 3 イメージを削除します。## image rm は rmi と同等です。 docker イメージ rm $IMAGE_ID ## 同一の IMAGE ID が複数ある場合は、docker rmi $REPOSITORY:$TAG を使用して削除します。 # 4 コンテナに入る docker exec -it $CONTAINER_ID /bin/bash ## 現在のコンテナ内の Centos7 のバージョンを表示します cat /etc/redhat-release 3.3 コンテナにいくつかの基本サービスをインストールして設定する# 1 より良いファイル編集のためにvimをインストールすることができます yum インストール -y vim # 2 ポート情報をより便利に表示するには、lsofをインストールします yum インストール -y lsof # 3 wgetをインストールする yum インストール -y wget # 4 ツリーをインストールする yum インストール -y ツリー # 5 Pythonツールyum install -y python-devel # 6 Cコンパイル環境をインストールする yum install -y gcc gcc-c++ yum インストール -y zlib yum インストール -y zlib-devel yum インストール -y tcl ビルド必須 tk gettext Centosによってユーザーログインコンテナに設定された環境変数を有効にするには、次の設定を実行します。 vim ~/.bashrc # 最後にsource /etc/profileを追加します 3.4 シェル# 1 yum install spenssl service yum -y install passwd openssl openssh-server openssh-clients mkdir /var/run/sshd/ # 2 設定を変更する vim /etc/ssh/sshd_config +39 ## 38行目から45行目の間で、次の3つの設定を変更または追加します。PermitRootLogin yes RSA認証はい 公開鍵認証はい # 3 sshd サービスを開始および停止する## 3.1 systemctl start sshd.service を開始する ## 3.2 sshd サービスのステータスを表示する systemctl status sshd ## 3.3 systemctl start sshd.service を停止する # 4 起動時に自動的に起動するように設定する systemctl enable sshd.service # [スキップ可能] 5 ssh秘密鍵と公開鍵を生成する# ssh-keygen -t rsa # 6 SSHサービスを表示 lsof -i:22 # 7 ルートパスワードを設定する (2020) パスワード # 8 ssh root@bigdata経由でコンテナにアクセスする 3.5 [オプション] コンテナ構成の変更コンテナの操作中にいくつかの構成情報を変更し、それをコンテナ内で有効にする必要がある場合、次の 2 つの方法で行うことができます。最初の方法は操作が簡単ですが、Docker サービス全体を再起動する必要があり、一部の対応する構成が有効にならない可能性があります。2 番目の方法は、既存のコンテナの下に新しいイメージを直接生成し、既存のコンテナに影響を与えずに新しいイメージでコンテナを再起動する方法です。 3.5.1 コンテナ設定ファイル経由# hash_of_the_container は、CONTAINER ID を表示することで取得できます。vim /var/lib/docker/containers/${hash_of_the_container}/hostconfig.json 開くと、圧縮された json ファイルになっています。フォーマット後の "ネットワークモード": "デフォルト", 「ポートバインディング」: { "22/tcp": [ { "ホストIP": "bigdata01", "ホストポート": "30022" } ]、 "80/tcp": [ { "ホストIP": "bigdata01", "ホストポート": "30080" } ]、 "3306/tcp": [ { "ホストIP": "bigdata01", "ホストポート": "33306" } ] } 3.5.2 docker commitメソッド経由推奨される方法。 # 1 現在実行中のコンテナを停止する docker stop $CONTAINER_ID # 2 dockerコンテナをコミットする docker commit $CONTAINER_ID new_image:tag # 3 現在のイメージライブラリのdockerイメージを表示する # 4 生成された新しいイメージを使用して新しいコンテナを起動します docker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it \ -p 30022:22 -p 30080:80 -p 33306:3306 \ --name="yore_centos7_v2" -h "bigdata01" -d yore/centos7_v2:latest /usr/sbin/init 3.6 ローカルイメージを作成する# 1 現在実行中のコンテナを停止する docker stop $CONTAINER_ID # 2 dockerコンテナをコミットする docker commit $CONTAINER_ID centos7_base:v1 # 3 現在のイメージライブラリのdockerイメージを表示する 3.7 Alibaba Cloud Image Libraryに画像を送信する
アクセスパスワード: イメージリポジトリのパスワードを設定します(固定、一時) # 既存のローカルDockerイメージを表示する # 2 アクセス資格情報(以前に設定したアクセス資格情報の固定パスワード) sudo docker ログイン --username=7910*****@qq.com registry.cn-shanghai.aliyuncs.com # 3 タグ docker タグ $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1 # 4 Alibaba Cloud イメージへのプッシュ docker push registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1 # 5 以前のタグのイメージを削除する必要がある場合は、次のコマンドを実行します docker rmi $REPOSITORY:$TAG 3.8 Alibaba Cloudに送信されたイメージの使用前のステップが正常に送信されると、次のようにAlibaba Cloudコンソールページで送信した画像が表示されます。 このイメージは Centos 7.8.2003 をベースにしており、主に vim、lsof、wget、tree、sshd などのサービスをインストールします。注意: 起動後、 root ユーザーのデフォルトのパスワードは 2020 です。システムのセキュリティを強化するには、まずこれをより複雑なパスワードに変更してください。 # 現在 Docker にあるイメージを表示する sudo docker images # アップロードしたイメージをプルします。## イメージ接続は基本情報から確認できます。パブリック ネットワーク アドレス、プライベート ネットワーク、クラシック ネットワークから選択できます。sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1 4 開発環境バージョン Centos7 イメージ開発でよく使われる環境をインストールして設定する #1 走る。以下は、このコンテナの設定をさらに変更します。# ベースイメージに基づいて、コンテナを起動します。docker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it \ -p 30022:22 -p 30080:80 -h "bigdata01" \ --name="centos7_dev1" -d centos7_base:v1 /usr/sbin/init # 2 コンテナに入る docker ps docker exec -it $コンテナID /bin/bash # 3 ホストが変更されました。 172.17.0.3 yore.node1 bigdata01 4.1 の# 1 ダウンロード。下記のリンクが無効な場合は、Oracle アカウントにログインする必要があります。 # jdk8 をダウンロードするには、https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html にアクセスしてください。 https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1573137213_adc79b33f2d9ed27cb8b09b6adf71820 でダウンロードします。 # 2 解凍 tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local/ chown ルート:root -R /usr/local/jdk1.8.0_231 # 3 環境変数を設定する vim /etc/profile # 次の設定を追加します### Java 環境を設定します JAVA_HOME=/usr/local/jdk1.8.0_231 JRE_HOME = $JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin JAVA_HOME JRE_HOME CLASS_PATH PATH をエクスポートします。 # 4 有効にするにはロードします。 ソース /etc/profile # 5 コンテナに入るたびにvim ~/.bashrcを有効にするには # 最後の行を追加して保存します。source /etc/profile # 6 Javaのバージョンを確認する java -version 4.2 ギット# 1 ソースコードをダウンロードし、 wget -O git-2.27.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.gz # 2 解凍 tar -zxf git-2.27.0.tar.gz -C /tmp/ /tmp/git-2.27.0 をコピーします # 3 関連する依存関係を確認し、インストールパスを設定します。/configure --prefix=/usr/local/git # 4 インストール make && make install # 5 ソフトリンクを作成する ln -s /usr/local/git/bin/git /usr/bin/git # 6 バージョンを確認する git -v 4.3 メイヴン# 1 wget をダウンロード https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz # 2 tar -zxf apache-maven-3.6.3-bin.tar.gz を解凍します Apache Maven 3.6.3 を /usr/local/maven3 にコピーします。 # 3 設定を変更する vim /usr/local/maven3/conf/settings.xml 以下を設定します <!-- 55 行目あたりを追加して、ローカル倉庫へのパスを指定します --> <localRepository>/opt/.m2/repo</localRepository> <!-- 158 行目あたりで、国内ミラーを設定します。ここに Alibaba Maven ミラーがあります --> <!-- Alibaba Cloud のイメージを設定する --> <ミラー> <id>ネクサス-アリユン</id> <ミラーOf>*</ミラーOf> <name>Nexus アリユン</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </ミラー> <ミラー> <id>中央リポジトリ1</id> <name>中央リポジトリ 2</name> <url>https://repo1.maven.org/maven2/</url> <!-- は中央リポジトリのみをミラーリングすることを意味します。すべてのリポジトリをミラーリングする場合は、次のように変更できます --> <ミラーOf>*</ミラーOf> </ミラー> 次の設定を完了してください # 4 環境変数を設定する vim /etc/プロファイル # Maven環境を設定する エクスポート MAVEN_HOME=/usr/local/maven3 PATH=$PATH:$MAVEN_HOME/bin をエクスポートします。 # 5 有効にする source /etc/profile # 6 バージョンを確認する mvn -version 4.4 エングクス# 1 Nginx オフライン インストール パッケージをダウンロードします。 x86 および centos7 バージョンを例に挙げます: wget http://nginx.org/packages/mainline/centos/7/x86_64/RPMS/nginx-1.17.6-1.el7.ngx.x86_64.rpm # 2 rpm -ivh nginx-1.17.6-1.el7.ngx.x86_64.rpm をインストールします # 3 設定ファイル /etc/nginx # サーバー サービスは、.conf で終わる次のパスに設定し、再起動するか、設定を有効にします /etc/nginx/conf.d/ # 4 共通コマンド## 4.1 開始、内部ポート80がホストのポート30080にマッピングされているため、ブラウザでホストのIPとポート30080を介してsystemctl start nginxにアクセスします。 ## 4.2 ステータス systemctl status nginx ## 4.3 停止 systemctl stop nginx ## 4.4 systemctl restart nginxを再起動する ## 4.5 設定の再有効化 /usr/sbin/nginx -s reload # ここで提供されるイメージは Nginx サービスを停止しています。必要に応じて手動で起動してください。 4.5 ノード# 1 wget をダウンロード https://nodejs.org/dist/v12.18.2/node-v12.18.2-linux-x64.tar.xz # 2 tar -xf node-v12.18.2-linux-x64.tar.xz を解凍します mv node-v12.18.2-linux-x64 /usr/local/nodejs # 3 接続を作成する ln -s /usr/local/nodejs/bin/node /usr/bin/node ローカルノードを再起動する # 4 バージョンを確認する node -v npm -v 4.6 ローカルイメージとして保存# 1 現在実行中のコンテナを停止する docker stop $CONTAINER_ID # 2 dockerコンテナをコミットする docker commit $CONTAINER_ID centos7_dev:v1 # 3 現在のイメージライブラリのdockerイメージを表示する 4.7 Alibaba Cloud Image Libraryへのイメージの送信3.7 Alibaba Cloud Image Libraryに画像を送信するのと同じ方法で、Alibaba Cloud Image Libraryに画像を送信します。 docker タグ $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1 docker プッシュ registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1 このイメージは Centos 7 をベースにしています。中国語の基本バージョンでは、JDK、Git、Maven、Nginx、Node.js のサービスが統合されています。注意: 起動後、 root ユーザーのデフォルトのパスワードは 2020 です。システムのセキュリティを強化するには、まずこれをより複雑なパスワードに変更してください。 # 現在 Docker にあるイメージを表示する sudo docker images # アップロードしたイメージをプルします。## イメージ接続は基本情報から確認できます。パブリック ネットワーク アドレス、プライベート ネットワーク、クラシック ネットワークから選択できます。sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1 5 Centos7 イメージ(MySQL 付き)ここでは開発環境バージョンのイメージに基づいてMySQLデータベースをインストールします 5.1 Dockerネットワークの設定# 1 既存のネットワークを表示する(デフォルトでは3つ作成されます) # ブリッジブリッジネットワーク。 Docker コンテナが再起動されるたびに、対応する IP アドレスが順番に取得されるため、再起動後に IP アドレスが変更される場合があります # host ホスト ネットワーク。 Docker コンテナのネットワークはホストに接続され、両者は相互接続されます。 # none コンテナにはLAN IPは割り当てられません [yore@VM_0_3_centos アプリ]$ sudo docker ネットワーク ls ネットワーク ID 名前 ドライバー スコープ ba8077c371b9 ブリッジ ブリッジ ローカル 1be5b2b64e10 ホスト ホスト ローカル 77ef163ae7c4 なし null ローカル # 2 カスタムネットワークを作成します。 # sudo docker ネットワークプルーニング # 注意: 既存のネットワークセグメントと競合することはできません sudo docker network create --subnet=172.19.0.0/16 mynetwork 5.2 コンテナを起動する#1 走る。以下は、このコンテナにさらなる変更を加えます。# centos7_dev イメージに基づいて、コンテナを起動します。# ネットワークモードは、以前にカスタマイズした mynetwork として指定されているため、ip を直接指定できます。 docker run --privileged=true --cap-add SYS_ADMIN -e コンテナ=docker -it \ --network mynetwork --ip 172.19.0.2 -h "bigdata02" --name="dev_mysql_v1" \ -p 30022:22 -p 33306:3306 \ -d centos7_dev:v1 /usr/sbin/init # 2 コンテナに入る docker ps docker exec -it $コンテナID /bin/bash # 3 [オプション] ホストを変更します。実行時に172.19.0.2 yore.node2 bigdata02を指定することもできます。 5.3 MySQL MySQL のインストールの詳細については、私のブログ「CDH 6.2.0 または 6.3.0 のインストール プラクティスと公式ドキュメント リンク #1.5 MySQL コンテンツ」を参照してください。 5.4 ローカルイメージとして保存# 1 現在実行中のコンテナを停止します# docker stop $CONTAINER_ID # 2 dockerコンテナをコミットする docker commit $CONTAINER_ID dev_mysql:v1 # 3 現在のイメージライブラリのdockerイメージを表示する 5.5 Alibaba Cloud Image Libraryへの画像の提出3.7 Alibaba Cloud イメージ ライブラリへのイメージの送信と同じ方法で、イメージを Alibaba Cloud イメージ ライブラリに送信します。 docker タグ $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1 docker push registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1 このイメージは Centos 7 をベースにしています。開発環境バージョンをベースに、 MySQL 5.7サービスが統合されています。注意: 起動後、システム ルート ユーザーのデフォルトのパスワードは 2020 です。システムのセキュリティを強化するには、まずこれをより複雑なパスワードに変更してください。 # 現在 Docker にあるイメージを表示する sudo docker images # アップロードしたイメージをプルします。## イメージ接続は基本情報から確認できます。パブリック ネットワーク アドレス、プライベート ネットワーク、クラシック ネットワークから選択できます。sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1 docker のインストール、docker での mysql イメージの使用、公式 docker mysql イメージの中国語の文字などの詳細については、私の別のブログ「Windows/Mac で Docker を使用して MySQL をインストールする」をご覧ください。 Docker ベースのよく使われる CentOS7 イメージをいくつか紹介したこの記事はこれで終わりです。Docker でよく使われる CentOS7 イメージについて詳しくは、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML初心者や初級者向けの提案。専門家は無視してかまいません。
テンプレート <el-table :data="データリスト"> &...
1. 基本的なテキスト要素を使用してコンテンツをマークアップするまず表示効果を見てみましょう:対応す...
1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...
問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...
1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...
MySQL データベース テーブルでは、インデックスを作成、表示、再構築、削除できるため、クエリ速度...
追加するdocker run -it -name test -d nginx:latest /bin...
最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...
目次1. はじめに2. 設定手順1. はじめに1. NAT モード (VMnet8) は、仮想マシン...
最近、同社はitpubを皮切りに、コーポレートウェブサイト傘下の全サイトの評価を開始した。そのために...
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...
1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...
エラーの説明Docker Desktop をインストールすると、WSL2 (Windows ベースの...
まず、updatexml()関数を理解する UPDATEXML (XML ドキュメント、XPath ...