Docker構築CI/CDツールの詳細

9062 ワード

**

一、ネットワークなしでdocker環境を構築する


** https://www.jianshu.com/p/15e1fb009e9e会社はいくつかのプライベートクラウドプラットフォームの構築をしているため、ネットワークがない場合に環境を構築することができ、テストのプロセス全体を経てdocker環境を構築することができます.ネットワークサーバなしでdockerをインストール
  • 本機でdockerオフラインパッケージをダウンロードするdocker-18.06.1-c eを選択する.tgz https://download.docker.com/linux/static/stable/x86_64/
  • rzを使用してオフラインパケットをサーバにアップロード、tar-xvf docker-18.06.1-c e.tgzで解凍
  • 解凍したdockerファイルをcp docker/*/usr/bin/
  • 構成vim/etc/systemd/system/dockerを追加する.サービス、配置は以下の通り:
  • [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    [Install]
    WantedBy=multi-user.target
    

    ファイルは権限を追加し、構成を再ロードしてdockerを起動します.
     chmod +x /etc/systemd/system/docker.service # docker
     systemctl daemon-reload # unit 
     systemctl start docker # Docker
     systemctl enable docker.service # 
    
  • docker起動状態の確認
  •  systemctl status docker # Docker 
    

    メモ:dockerのインストール中にdockerブリッジが自動的に追加されます.起動異常の場合は、ブリッジを手動で追加してみます.
       brctl addbr docker0 ip addr add 172.17.0.1/16 dev docker0 ip link set dev docker0 up systemctl restart docker
    

    二、dockerのインストール


    http://www.imooc.com/article/282731
    環境準備:
    Ubuntu 64-bitシステム
    Kernel 3.10+
    (1)システムのカーネルバージョンをチェックし、3.10より大きい値を返します.
     :uname -r
    

    (2)sudoまたはroot権限を使用するユーザがミッドレンジにログインする
    (3)apt-getが最新バージョンであることを保証し、以下のコマンドを実行する.
     :apt-get update
    

    (3)dockerのインストール:
     :apt-get install -y docker.io
    

    このコマンドでインストールされているのはdockerの最新バージョンではない可能性があります.
    dockerの最新バージョンをインストールするには、次のコマンドを使用します.
     :curl -s https://get.docker.com | sh
    

    (4)インストールが完了したら、インストールが成功したかどうかを確認し、次のコマンドを実行します.
     :docker version
    

    dockerが正常にインストールされたことを示します!
    docker versionコマンドを実行した後、Serverセクションが表示されない場合は、dockerサービスコマンドの起動を説明します.次のコマンドを実行してdockerサービスを起動できます.
     :service docker start
    

    その後docker versionコマンドを再度実行すると、関連情報が表示されます.

    三、dockerパッケージング機械間移動ミラー-インスタンスInstance


    エクスポート:
    docker save f8908be1963b > /data/nginx.img
    scp nginx.img 10.6.7.13:/data/
    scp nginx.img 10.6.7.14:/data/
    

    インポート:
    [root@zabbix609 data]# docker load < nginx.img
    docker images
    docker tag f8908be1963b nginx:latest
    docker images |grep nginx
    

    四、dockerにjenkinsをインストールする


    https://www.jianshu.com/p/12c9a9654f83
    1.pull jenkinsミラーdocker pull jenkins/jenkins:lts;これは最新版のjenkinsをインストールしています.古いバージョンをインストールすると、多くのプラグインがインストールされず、docker環境でのアップグレードが面倒になります.
    2.既にインストールされているjenkinsミラーを確認docker images;最新版かどうかを確認docker inspect ba607c18aeb73.jenkinsディレクトリを作成するmkdir /home/jenkins_home;4.jenkins容器を1つ起動docker run -d --name jenkins_01 -p 8081:8080 -v /home/jenkins_01:/home/jenkins_01 jenkins/jenkins:lts ;5.jenkinsサービスの表示docker ps | grep jenkins;6.サービス・エンドを開始します.localhost:8081;
    7.容器内部に入るdocker exec -it jenkins_01 bash;8.実行:cat /var/jenkins_home/secrets/initialAdminPassword、パスワードを入手して貼り付ける;
    9.パスワード入力後、dockerミラーを再起動docker restart {CONTAINER ID}インストール完了.

    五、Docker-OpenGrokインストール

  • opengrokのインストール:
  • sudo docker pull scue/docker-opengrok
    
  • インデックスを生成して起動:
  • sudo docker run --rm \
        -v /path/to/source:/src \
        -v /path/to/opengrok_data:/data \
        -p 8888:8080 \
        scue/docker-opengrok
    

    そしてhttp://localhost:8888/sourceでアクセスできます.ここで/path/to/sourceはホストソースweizhの位置であり、/path/to/opengrok_dataは、ホストcuが構成、ログ、生成したデータベースファイルを格納する場所である.バックグラウンドで実行する必要がある場合は、パラメータ-dを追加します.
  • インデックス更新:
  • sudo docker exec ${CONTAINER_NAME} OpenGrok index /src
    

    環境設定:
  • ミラーの表示:
  • $ sudo docker images
    REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
    scue/docker-opengrok   latest              93c3cb01d8cb        2 years ago 387MB
    

    2.コンテナの表示:
    $ sudo docker ps
    CONTAINER ID        IMAGE                  COMMAND               CREATED              STATUS              PORTS                    NAMES
    b80b902c11eb        scue/docker-opengrok   "/scripts/start.sh"   About a minute ago   Up About a minute   0.0.0.0:8888->8080/tcp   trusting_hermann
    

    3.容器の停止:
    docker stop b80b902c11eb
    

    六、Mediawiki


    sql dockerを起動するには:
    docker run -d --name mediawiki-mysql -e MYSQL_ROOT_PASSWORD=abc@123 mysql/mysql-server:5.7
    

    dockerへ:
    docker exec -it mediawiki-mysql /bin/bash
    

    sqlの設定:
    #bash-4.2# 
    mysql -uroot -p
    ......
    #mysql> 
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abc@123' WITH GRANT OPTION;
    #mysql> 
    FLUSH PRIVILEGES;
    

    dockerを起動するには:
    docker run --name facethink-mediawiki --link mediawiki-mysql:mysql -p 8001:80 -e MEDIAWIKI_DB_PASSWORD=abc@123 -d wikimedia/mediawiki:1.30.0-wmf4