1. 程式人生 > >docker初識:執行mysql例項

docker初識:執行mysql例項

環境

  • CentOS 7.3 64bit

安裝docker

  1. 移除舊版本Docker

    yum remove docker docker-common docker-selinux docker-engine

  2. 設定Docker倉庫

    2.1 安裝所需要的包

    yum install -y yum-utils device-mapper-persistent-data lvm2

    2.2 設定新增穩定版的Docker倉庫

  3. 安裝 DOCKER CE

    3.1 更新yum

    yum makecache fast

    3.2 安裝最新版的docker ce

    yum -y install docker-ce

    3.3 也可以安裝指定版本的docker ce

    • 列舉可用的docker ce

    yum list docker-ce.x86_64 –showduplicates | sort -r

  4. 安裝指定版本
    yum install docker-ce-\
  5. 啟動Docker

    systemctl start docker

  6. 檢視Docker版本

    docker -v

  7. 解除安裝Docker(Optional)

    6.1 解除安裝docker安裝包

    yum remove docker-ce

    6.2 刪除所有的 images, containers, volumes(一些自定義的配置檔案需要自己手動刪除)

    rm -rf /var/lib/docker

安裝Docker compose

  1. 賦予可執行許可權

    chmod +x /usr/local/bin/docker-compose

  2. 檢視版本號驗證是否安裝成功

    docker-compose -v

docker執行mysql例項

  1. 下載官方的mysql映象

    docker pull mysql:5.7.18

  2. 啟動mysql

    docker run --name mysql_db -p 3306:3306  -v /home/docker/mysql/logs:/data/logs/mysql -v /home/docker/mysql/data
    :/var/lib/mysql -v /home/docker/mysql/conf/:/etc/mysql/conf.d -e MYSQL_DATABASE=opencart -e MYSQL_ROOT_PASSWORD=[email protected]1234567890 -d mysql:5.7.18

    引數說明:

    • -p 3306:3306 (“port_you_want” : “exposed_port_from_dockerfile”) 埠對映
    • --name mysql_db 指定docker container名稱為mysql_db
    • -v /home/docker/mysql/data:/var/lib/mysql 對映container中mysql的資料目錄/var/lib/mysql到本地/home/docker/mysql/data
    • -v /home/docker/mysql/conf/:/etc/mysql/conf.d 對映配置檔案目錄
    • -v /home/docker/mysql/logs:/data/logs/mysql 對映日誌檔案
    • -e MYSQL_DATABASE=opencart 設定啟動環境引數MYSQL_DATABASE(初始化時建立的資料庫)
    • -e MYSQL_ROOT_PASSWORD=password 設定初始化的mysql root使用者密碼
    • -d mysql:5.7.18 demean模式執行mysql:5.7.18

    附上簡短的my.cnf配置
    “`
    ######################### my.cnf #######################################
    # 對應日誌檔案需要手動建立,並賦予mysql可讀寫許可權,否則container啟動不成功
    # 錯誤日誌
    log-error=/var/log/mysql/error.log

    # 開啟全查詢日誌. 所有的由伺服器接收到的查詢 (甚至對於一個錯誤語法的查詢)
    # 都會被記錄下來. 這對於除錯非常有用, 在生產環境中常常關閉此項.
    general_log=ON
    general_log_file=/var/log/mysql/mysql.log

    # 慢查詢日誌
    slow_query_log=on
    long_query_time=2 #2s
    slow_query_log_file=/var/log/mysql/slowquery.log

    # 開啟二進位制日誌功能.
    # 在複製(replication)配置中,作為 MASTER 主伺服器必須開啟此項
    # 如果你需要從你最後的備份中做基於時間點的恢復,你也同樣需要二進位制日誌.
    #log-bin=/usr/local/mysql/logs/mysql-bin
    “`

  3. 檢視啟動日誌(啟動時出錯可以觀察下是什麼原因)

    docker logs mysql_db

  4. 檢視執行中的容器

    docker ps

    檢視所有容器

    docker ps -a

  5. 安裝mysql客戶端

    yum -y install mysql

  6. 連線mysql

    mysql -h 127.0.0.1 -uroot -p

  7. 停止容器

    docker stop mysql_db

  8. 啟動已有容器

    docker start mysql_db

  9. 在另一個container中使用mysql

    docker run –name some-app –link mysql_db:mysql -d application-that-uses-mysql