コンテナー デプロイメント Jenkins の利点:
1. 安全性。コンテナ間のプロセスが分離されている 単一コンテナの環境が安定している ホストの環境変数を変更してもコンテナの実行結果に影響しにくい
2. 導入と拡張が容易になります。コンテナーは簡単に移行でき、一度配信すれば複数回使用できるため、パッケージ化された Jenkins 環境を他のデバイスに移行できます。
3. コンテナの起動が早く、環境の復元が簡単です。コンテナの変更は追跡可能であり、定期的に Docker イメージを生成することで、将来的に環境異常が発生した場合でも迅速に復旧できるほか、コンテナ インスタンスの作成は仮想マシン インスタンスの作成よりもはるかに高速です。
前提条件:
- ドッカーをインストールします。
- docker-composer をインストールします。
- python3 をインストールします。pip リストに問題がない場合は、pip を使用してインストールできます: sudo pip install docker-compose
- 権限の付与: chmod +x /usr/local/bin/docker-compose
- インストールが成功したかどうかを確認します: docker-compose -v
- 最新の jenkins イメージを選択します。選択しない場合、jenkins のバージョンが一致しないため、jenkins のダウンロード プラグインは失敗します。
- コマンドを実行します: docker pull jenkins/jenkins:Its
- マッピング パス: sudo chown -R 1000:1000 /home/docker/jenkins (このローカル パスは自分で変更でき、後で使用します)
ふたつのやり方:
-
Docker run メソッド、コマンドラインを直接実行
- Jenkins コンテナに属する Docker ネットワークを作成します。
- コマンドを実行: docker network create jenkins_network (ネットワーク名)
- jenkins コンテナを実行します。
- コマンドを実行します: docker run --name jenkins-in-docker --network jenkins_network (ネットワーク名) --publish 8080 (アクセス ポート番号、構成可能): 8080 --publish 50000:50000 --volume /home/docker/ jenkins (前提条件 4 のマッピング パス):/var/jenkins_home --volume /usr/bin/docker:/usr/bin/docker --volume /var/run/docker.sock:/var/run/docker.sock jenkins /jenkins :lts
- 実行中のコンテナーの出力を観察し、ログ「Jenkins is fully up and running」を確認して、Jenkins が正常に開始されたことを示します。
- ブラウザで http://サーバー IP:8080 にアクセスします。アクセスできない場合は、ファイアウォールがポート 8080 を開いていることを確認してください。
- このとき、ctrl+c でコンテナを終了すると、jenkins サービスがシャットダウンされます。コマンドの実行時に -d を追加して、コンテナがバックグラウンドで実行されるようにするか、docker start docker_jenkins (コンテナ名) を再起動することができます。コンテナ。
-
ブラウザで http://serverIP:8080 にアクセスし、Jenkins 構成インターフェイスに入ります。Jenkins の構成については、次を参照してください: Jenkins の基本 - Linux への Jenkins のインストール_Silly Fat Fish のブログ - CSDN ブログ
- Jenkins コンテナに属する Docker ネットワークを作成します。
-
docker-compose を使用して Jenkins コンテナを実行する
- yamlファイルを作成する
- vimインフラストラクチャ-docker-compose.yml (名前は変更可能)
- ymlで設定する
- バージョン: '3.7'
サービス:
jenkins-in-docker:
イメージ: jenkins/jenkins:lts
コンテナ名: jenkins-in-docker
特権: true
再起動: 停止していない限り
ポート:
- 8080:8080
- 50000:50000
環境:
JAVA_OPTS: " -Xmx2048m -Xms1024m -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
ボリューム:
- 。 /jenkins_home:/var/jenkins_home
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
ネットワーク:
- jenkins_network
デプロイ:
リソース:
制限:
メモリ: 4096M
CPU: '2'
ネットワーク:
jenkins_network:
外部: true
- shファイルを作成し、docker-composerコマンドを実行します。
- vimスタートアップ-インフラストラクチャ-docker-compose.sh (スクリプト名は変更可能)
- 脚本内容
- #!/usr/bin/env bash
# 配置docker network 名とdocker-compose文件
docker_network=jenkins_network
docker_compose_file=infrastructor-docker-compose.yml
# 配置下docker-compose文件内容
echo "以下のような構成ファイル: "
docker- compose -f ${docker_compose_file} config
nw=$(docker network ls | grep ${docker_network} | awk '{print $1}')
if [[ ${nw} ]]; その後
docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
それ以外の場合
docker network create ${docker_network} && docker-compose -f ${docker_compose_file} --compatibility up --remove-orphans -d
フィ
- sh スクリプトに権限を付与し、スクリプトを実行します。
- chmod +xスタートアップ-インフラストラクチャ-docker-compose.sh
- ./スタートアップ-インフラストラクチャ-docker-compose.sh
- コンテナーの表示: docker ps
- コンテナーの実行ログを表示し、コマンド docker logs -f コンテナー名 --tail=50 を実行できます。「Jenkins は完全に稼働中です」というログが表示された場合は、Jenkins が正常に
- ブラウザで http://serverIP:8080 にアクセスし、Jenkins 構成インターフェイスに入ります。Jenkins の構成については、次を参照してください: Jenkins の基本 - Linux への Jenkins のインストール_Silly Fat Fish のブログ - CSDN ブログ
- yamlファイルを作成する