"

齐发游戏app_官方网站拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,齐发游戏app_官方网站更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,齐发游戏app_官方网站让您尽享娱乐、赛事投注等,且无后顾之忧!

  • <nav id="seiua"></nav>
  • <menu id="seiua"><strong id="seiua"></strong></menu>
  • "

    MySQL在Docker環境下運行基礎

    小編:啊南 22閱讀 2020.11.20

    墨墨導讀:MySQL在Docker環境下運行的基礎操作,本文從Docker介紹、安裝Docker、MySQL安裝部署幾個方面展開介紹。

    1. Docker介紹

    1.1. docker是一種linux容器技術。容器有效的將由單個操作系統掛管理的資源劃分到孤立的組中,以便更好的在組之間平衡有沖突的資源使用需求。每個容器內運行一個應用,不同的容器之間相互隔離,容器之間也可以建立通信機制。容器的創建和停止都十分快速,資源需求遠遠低于虛擬機。

    優點:

    • 能高效地構建應用。
    • 能快速的交付和部署
    • 高效的資源利用
    • 輕松的遷移擴展
    • 簡單的更新管理

    1.2. 容器的發展史:

    1.3. Docker容器的運行方式:(三大核心組件)

    • 鏡像(images):類似虛擬機鏡像
    • 倉庫(Repository):集中存放鏡像的地方。每個服務器上可以有多個倉庫。
    • 容器(containers):鏡像的一個運行實例,類似linux系統環境,運行和隔離應用

    2. 安裝docker

    2.1. 先決條件

    • 必須是64位CPU架構的計算機,Docker目前不支持32位CPU;
    • 運行Linux3.8或更高版本內核,CentOS的內核版本不能低于3.10;
    • 內核必須支持一種合適的存儲驅動,可以是Device Manager、AUFS、vfs、btrfs、以及默認的驅動Device Mapper中的一個;
    • 內核必須支持并開啟cgroup和命名空間namespace功能。

    2.2. 檢查前提條件

    • 內核 通過uname命令來檢查內核版本信息。
    • 檢查Device Mapper ls -l /sys/class/misc/device-mapper

    2.3. 安裝docker

    環境準備: Kernel 3.10+

    (1)檢查系統的內核版本,返回的值大于3.10即可

    [root@ss30 ~]# uname -r
    3.10.0-1127.el7.x86_64

    (2)使用sudo或root權限的用戶登入中端

    (3)保證apt-get是最新版本的,執行如下命令:

    命令:yum update [root@ss30 ~]# yum update

    安裝docker:

    命令:yum -y install docker.io  (apt-get install -y docker.io)

    用此命令安裝的可能不是docker的最新版本,要想安裝docker的最新版本可以使用如下命令:

    命令:curl -s https://get.docker.com | sh
    [root@ss30 redis6.0]# service docker start 或systemctl start docker.service
    [root@ss30 redis6.0]# ps -ef |grep docker
    root       6966      1  1 19:51 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    root       7102   1862  0 19:51 pts/0    00:00:00 grep --color=auto docker
    [root@ss30 redis6.0]# docker version

    備注:移除Docker

    yum -y remove docker-engine

    3. MySQL安裝部署

    3.1. 拉去鏡像 訪問 MySQL 鏡像庫地址:https://hub.docker.com/_/mysql?tab=tags

    下載鏡像

    [root@ss30 softwares]# docker pull mysql:5.7.30
    [root@ss30 img]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    mysql               5.7.30              a4fdfd462add        9 days ago          448MB

    備注:

    docker pull [OPTIONS] NAME [:TAG] :此命令的作用是從docker遠程的倉庫拉取鏡像到本地 docker images [OPTIONS] [REPOSITORY[:TAG]] :此命令是來查看我們本機都有哪些鏡像,也可以驗證我們的pull是否執行成功

    查看容器運行情況

    [root@ss30 ~]# docker container ls
    [root@ss30 ~]# docker ps  ##列出容器

    備注: docker ps [OPTIONS]說明:

    • -a :顯示所有的容器,包括未運行的。
    • -f :根據條件過濾顯示的內容。
    • –format :指定返回值的模板文件。
    • -l :顯示最近創建的容器。
    • -n :列出最近創建的n個容器。
    • –no-trunc :不截斷輸出。
    • -q :靜默模式,只顯示容器編號。
    • -s :顯示總的文件大小。

    3.2. 簡單啟動 mysql

    查看所有container

    [root@ss30 ~]# docker images
    [root@ss30 ~]# docker run -p 3306:3306 --name mysql5730  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.30
    [root@ss30 ~]# docker container ls

    備注:

    • –name:為容器指定一個名稱,此處命名為mysql5.7
    • -e:配置信息,此處配置mysql的root用戶的登陸密碼
    • -p:端口映射,此處映射 主機3306端口 到 容器的3306端口
    • -d:后臺運行容器,并返回容器ID; 內部映射的端口改成其他端口時候,需要進入docker內 把對應的端口my.cnf進行配置

    登錄容器:docker exec -it 容器ID bash

    docker exec -it b2240680eb53   /bin/bash

    3.3. 登錄mysql

    查看所有container

    [root@ss30 openssl-1.1.1g]# docker ps -a
    [root@ss30 openssl-1.1.1g]# docker start  fd014d8ed34b  ##關閉使用stop命令
    [root@ss30 openssl-1.1.1g]# docker ps

    登錄docker之后 登錄數據庫:

    進入mysql容器

    [root@ss30 ~]# docker exec -it mysql bash
    root@fd014d8ed34b:/#
    root@fd014d8ed34b:/# mysql -uroot -p123456

    3.4. 目錄映射 主機上創建對應的映射目錄:

    [root@ss30 mysql]# rm -rf /usr/local/docker/mysql/
    [root@ss30 docker]# mkdir -p  /usr/local/docker/mysql/conf
    [root@ss30 docker]# mkdir -p /usr/local/docker/mysql/data
    [root@ss30 docker]# mkdir -p  /usr/local/docker/mysql/logs

    配置文件my.cnf MySQL的默認配置中可以找到/etc/mysql/my.cnf,這可能! includedir /etc/mysql/conf.等額外的目錄d或/etc/mysql/mysql.conf.d(https://hub.docker.com/_/mysql/)

    #vim /usr/local/docker/mysql/conf/my.cnf
    [mysqld]
    server_id                          = 1303306
    character_set_server               = utf8mb4
    collation_server                   = utf8mb4_unicode_ci
    port                               = 3306
    transaction_isolation              = READ-COMMITTED
    max_connections                    = 1000
    datadir                            = /var/lib/mysql
    socket                             = /var/run/mysqld/mysqld.sock
    pid_file                           = /var/run/mysqld/mysqld.pid
    log_error                          = /var/log/mysql/error.log
    # chmod 644  /usr/local/docker/mysql/conf/my.cnf

    啟動數據庫

    #docker run -p 3306:3306 --name mysql  -v /usr/local/docker/mysql/conf:/etc/mysql  -v /usr/local/docker/mysql/logs:/var/log/mysql  -v /usr/local/docker/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7.30

    備注:-v:主機和容器的目錄映射關系,":"前為主機目錄,之后為容器目錄

    備注:映射本地目錄之后,但MySQL容器出現故障之后,可通過文件遷移,掛載方式,用原有數據搭建新容器,提供服務。

    3.5. 備份

    mysqldump備份命令:

    [root@ss30 opt]# docker exec 327a1c4866ee sh -c 'exec mysqldump -uroot -p123456 -P3309 --single-transaction --master-data --all-databases' > /opt/all-databases.sql
    關聯標簽:
    齐发游戏app_官方网站
  • <nav id="seiua"></nav>
  • <menu id="seiua"><strong id="seiua"></strong></menu>