Dockerfileは:コンテナミラーのMySQLのニーズを満たすために開発されたテストを設計します

これは、ドッキングウィンドウコンテナ画像Dockerfileドキュメントのデザインの開発ニーズを満たすためのテストです。テストとテスターのニーズに作業を委託し、当社試験容器は、スイスアーミーナイフであること、それは優先順位などの画像ファイルのボリュームサイズを制御しませんでした。最終的な送達コンテナ、1.72ギガバイトのボリュームをミラーリング。

Centos6ベース画像として使用し、基本的な構成と統合されたインストールキットや依存関係、中国の支持体が設けられている、時間帯及びシステムパラメータが適切に調整され、mysql5.6.30データベースをインストールしました。開発とデバッグを容易にするために、鏡の中のsshサービスをインストールして構成します。

このミラーはK8Sポッドコンテナ上の共通のプラットフォームとして実行することができますが見つかりました。

ソースコンテナがコンパイルされるように取り付けられた画像は、特に大容量となるので、我々は、効率のために、オフラインインストールを直接RPMパッケージを使用することを選択しました。この例では、公式サイトからダウンロードして自由に、更新されたバージョンを試してみたい場合は、ファイルのバージョンが、5.6.30で使用しています。メインのインストールパッケージには2つのファイルを取得することです:MySQLのサーバ・5.6.30-1.el6.x86_64.rpmはmysql-クライアント5.6.30-1.el6.x86_64.rpm
公式サイトのダウンロードページ:HTTPS://dev.mysql .COM /ダウンロード/ mysqlの/

ファイルDockerfile

FROM centos:6
MAINTAINER watermelonbig <[email protected]>

# 重置root密码
RUN echo "root:YYtest2019" | chpasswd
# 安装基础工具和依赖包
RUN yum clean all; \
        rpm --rebuilddb; \
        yum install -y curl which tar openssh-server openssh-clients rsync wget make gcc gcc-c++ cmake bison-devel ncurses ncurses-devel openssl openssl-devel libtool* iproute net-tools vim* vixie-cron sysstat lsof tcpdump telnet iputils lrzsz zip unzip;\
# 配置中文支持和时区
        yum -y groupinstall "Chinese Support"
RUN  sed -i '/LANG/s/.*/LANG="zh_CN.UTF-8"/g' /etc/sysconfig/i18n;\
        echo 'LANG=zh_CN.UTF-8' > /etc/environment;\
        echo 'LC_ALL=' >> /etc/environment;\
        source /etc/environment;\
        cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 系统参数调优
RUN echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf;\
        echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf;\
        echo 'net.ipv4.ip_local_port_range = 1024 65000' >> /etc/sysctl.conf;\
        echo 'vm.swappiness = 10' >> /etc/sysctl.conf;\
        echo '* soft nofile 65535' >> /etc/security/limits.conf;\
        echo '* hard nofile 65535' >> /etc/security/limits.conf;\
        echo "session   required        /lib64/security/pam_limits.so" >> /etc/pam.d/login;\
        sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config;\
        sed -i '/UseDNS yes/s/.*/UseDNS no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key;\
        ssh-keygen -t dsa -P ""  -f /etc/ssh/ssh_host_dsa_key
RUN chkconfig crond on;\
       chkconfig sshd on;\
       chmod u+s /usr/sbin/lsof;\
       chmod u+s /usr/sbin/tcpdump
ENV LANG=zh_CN.UTF-8

#Install MySQL
RUN yum -y install libaio numactl;\
    rpm -e mysql-libs-5.1.73 --nodeps

COPY ./MySQL-server-5.6.30-1.el6.x86_64.rpm .
COPY ./MySQL-client-5.6.30-1.el6.x86_64.rpm .

RUN rpm -i MySQL-server-5.6.30-1.el6.x86_64.rpm;\
    rpm -i MySQL-client-5.6.30-1.el6.x86_64.rpm

RUN mv /usr/my.cnf /etc;\
    sed -i 's/^# basedir.*$/basedir = \/usr/' /etc/my.cnf;\
    sed -i 's/^# datadir.*$/datadir = \/hskj\/mysql/' /etc/my.cnf;\
    echo "log-error = /var/log/mysqld.log" >> /etc/my.cnf;\
    echo 'explicit_defaults_for_timestamp=true' >> /etc/my.cnf;\
    mv /var/lib/mysql /hskj
    
RUN rm -rf MySQL-server-5.6.30-1.el6.x86_64.rpm;\
    rm -rf MySQL-client-5.6.30-1.el6.x86_64.rpm

CMD ["/usr/sbin/sshd","-D"]

EXPOSE 8080 8081 3306 22

ミラーコンテナを作成します。

# ls
Dockerfile  MySQL-client-5.6.30-1.el6.x86_64.rpm  MySQL-server-5.6.30-1.el6.x86_64.rpm
# docker build -t centos6-base-mysql .

サービスコンテナを作成および設定するには、ミラーを使用しました

それは、スタンドアローンドッキングウィンドウコンテナ、またはK8Sクラスタ作成ポッドのコンテナであるかどうか、私たちは、ここで説明することはできません。
あなたが唯一のいくつかの設定項目のコンテナを作成した後、次のように説明します。

  1. コンテナ事業でログインし、サービスのmysqlの実装では、データベースを起動するために開始します
  2. rootアカウントのパスワードデータベースを検索する/Root/.mysql_secretファイル
  3. / usr / binに/ mysql_secure_installation rootパスワードのリセット、Y選択尋問のすべての構成を実行します
  4. MySQLとテストサービスの可用性にログインします。

おすすめ

転載: blog.csdn.net/watermelonbig/article/details/90583267