1. 程式人生 > 其它 >Docker配置Mysql、nginx、docker配置django、docker映象遷移

Docker配置Mysql、nginx、docker配置django、docker映象遷移

Docker環境配置
  1. docker配置mysql

    1. docker search mysql
    2. docker pull mysql:5.7.24 注意:mysql Tags (docker.com)可以通過該網址查詢指定的容器版本tag。
    3. 執行mysql容器:docker run -d -p 3305:3306 --name mysql_01 -e MYSQL_ROOT_PASSWORD=nlp123456 mysql:5.7.24

    其中:-d:表示後臺執行;-p 3305:3306:表示埠對映

    ☆☆☆☆mysql資料遷移:

    1. 拷貝資料庫原始檔: show variables like '%dir%';將datadir下所需要的mysql資料庫拷貝出去。

    2. 檢視docker下的mysql的資料存放目錄:docker inspect mysql_contain_name | grep Mounts -A 20 ;關閉容器:docker stop mysql_contain_id;並將步驟1的資料來源拷貝到Source下。然後啟動docker start mysql_contain_id。結束!!!

  2. docker配置nginx

    1. docker search nginx
    2. docker pull nginx 這裡不做tag就預設下載最新版本
    3. 執行映象:* run -d -p 83:80 --name nginx_01 nginx
    4. 檢視所有的映象:
      docker ps -a
    1. 本地建立3個資料夾:mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

    2. 拷貝容器內 Nginx 預設配置檔案到本地當前目錄下的 conf 目錄,容器 ID 可以檢視 docker ps 命令輸入中的第一列:docker cp a6441efa5132:/etc/nginx/nginx.conf ~/nginx/conf

    3. 最終執行指令

      1. 把主機的 ~/nginx資料夾掛載到 mysqldocker容器的/usr/share/nginx資料夾裡面
      2. 改nginx的配置檔案就只需要把nginx配置檔案放在自定義的資料夾下( ~/nginx)
      3. 同時前端專案只需要放到~/nginx/www目錄下就ok:
      4. 執行指令:docker run -d -p 83:80 --name nginx_242 -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
  3. docker配置django

    ​1.配置Dockerfile

    1. base_images下的Dockerfile配置
    #這裡我使用的是linux centos7系統環境
    FROM centos:7
    
    #這裡主要是新增一下作者資訊
    MAINTAINER [email protected]
    
    #這裡是存放的路徑(網上大多說這裡是設定環境變數,本人是沒理解,根據我的實踐,這裡是將專案做成映象後的路徑)
    #ENV CODE_DIR=/home/hcx/images/admin_crawl
    #ENV DOCKER_SCRIPTS=$CODE_DIR/base_images/scripts
    ENV CODE_DIR=/opt/admin_crawl
    ENV DOCKER_SCRIPTS=$CODE_DIR/base_image/scripts
    
    #將scripts下的檔案複製到映象中的映象中的目錄裡(這裡個人感覺沒有什麼太大作用,先這樣進行復制)
    COPY ./scripts/* $DOCKER_SCRIPTS/
    
    #執行映象中的provision.sh指令碼
    RUN chmod a+x $DOCKER_SCRIPTS/*
    RUN $DOCKER_SCRIPTS/provision.sh
    
    1. scripts下的provision.sh配置
    #!/bin/bash
    set -e
    
    #python環境依賴(這裡主要就是針對python環境所安裝的一些依賴包)
    yum install -y \
        kde-l10n-Chinese\
        glibc-common\
        git\
        wget\
        mysql-devel\
        gcc\
        swig\
        pulseaudio\
        pulseaudio-libs\
        pulseaudio-libs-devel\
        zlib-devel\
        bzip2-devel\
        openssl-devel\
        ncurses-devel\
        sqlite-devel\
        readline-devel\
        tk-devel\
        gdbm-devel\
        db4-devel\
        libpcap-devel\
        xz-devel\
        libffi-devel\
        ncurese-devel\
        automake\
        autoconf\
        libtool\
        make\
        alsa-lib-devel\
        poppler-utils\
    
    
    #python3.7(開始安裝Python環境)
    wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
    tar -zxvf Python-3.7.7.tgz
    cd Python-3.7.7
    ./configure
    make && make install
    rm -rf Python-3.7.7*
    
    1. 主目錄(admin_crawl)下的Dockerfile配置
    #基礎映象(這裡的base_app_image就是之前製作的基礎映象,專案映象是在基礎映象的基礎上進行製作的,這個一定要理解清楚)
    FROM base_app_image:1.0
    
    #這裡主要就是設定一下編碼語言
    RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
    ENV LC_ALL zh_CN.UTF-8
    
    
    #將專案目錄檔案複製到映象中,CODE_DIR是在基礎映象中定義的
    COPY . $CODE_DIR
    
    
    #安裝專案所需的依賴包(這裡借鑑的網上的部分資料)
    RUN pip3 install -U pip
    RUN pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
    RUN pip3 config set install.trusted-host mirrors.aliyun.com
    RUN pip3 install altgraph==0.17
    RUN pip3 install asgiref==3.2.10
    RUN pip3 install attrs==20.2.0
    RUN pip3 install beautifulsoup4==4.9.1
    RUN pip3 install bs4==0.0.1
    RUN pip3 install certifi==2020.6.20
    RUN pip3 install click==7.1.2
    RUN pip3 install contrib==0.3.0
    RUN pip3 install cycler==0.10.0
    RUN pip3 install Django==3.1.3
    RUN pip3 install docopt==0.6.2
    RUN pip3 install Flask==1.1.2
    RUN pip3 install httpserver==1.1.0
    RUN pip3 install importlib-metadata==2.0.0
    RUN pip3 install itsdangerous==1.1.0
    RUN pip3 install Jinja2==2.11.2
    RUN pip3 install jsonschema==3.2.0
    RUN pip3 install kiwisolver==1.2.0
    RUN pip3 install macholib==1.14
    RUN pip3 install MarkupSafe==1.1.1
    RUN pip3 install matplotlib==3.3.2
    RUN pip3 install numpy==1.19.2
    RUN pip3 install Pillow==8.0.1
    RUN pip3 install django-filter
    RUN pip3 install PyMySQL
    RUN pip3 install djangorestframework
    RUN pip3 install django-encrypted-model-fields
    RUN pip3 install django-python3-ldap
    RUN pip3 install django-cors-headers
    RUN pip3 install py2neo
    RUN pip3 install selenium
    RUN pip3 install my_fake_useragent
    RUN pip3 install lxml
    #暴露埠
    EXPOSE 8000
    
    #啟動專案,這裡的路徑就是前面基礎映象包的CODE_DIR路徑,再加上自己的專案複製到裡面的路徑,不清楚的可以參考這我給出的結構進行比對
    CMD ["python3", "/opt/admin_crawl/manage.py", "runserver", "0.0.0.0:8000"]
    
    1. 製作基礎映象,在base_image資料夾中執行以下命令:docker build -t base_app_image:1.0 . #注意這裡的base_app_image指的是基礎映象的名稱,後面製作專案映象會用到這裡名稱;注意:版本號後面有一個點一定要加上**

    2. 製作專案映象:docker build -t my_app:1.0 . #這裡的my_app就是自己專案的映象名稱

    3. 檢視映象是否製作成功:docker images

    1. 啟動映象:docker run -d -p 8000:8000 --name admin_242 admin_crawl:6.0
    2. 指定本地( /home/hcx/opt)目錄掛載(/opt/admin_crawl/static/txt)目錄下的檔案: docker run -d -p 8000:8000 --name test -v /home/hcx/opt:/opt/admin_crawl/static/txt admin_crawl:7.0
  4. docker映象遷移

    1. docker映象打包

      docker save -o admin_crawl.tar admin_crawl:6.0

    2. docker映象遷移安裝

      docker load -i admin_crawl.tar

  5. docker日誌操作

  • 檢視最近30m的日誌:docker logs --since 30m CONTAINER_ID
  • 檢視某個時間之後的日誌:docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
  • 檢視某段時間的日誌:docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
  • 檢視指定時間後的100條日誌:docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
腳踏實地,注重基礎。