Centos7.2 安裝docker、mysql和redis


環境信息

Docker是什么?

Docker就是一個平台,這個平台具備開發、發布和運行應用程序的功能,在項目生命周期中,我們可以運用Docker實現快速交付、測試和部署。Docker通過將運行環境打包成一個鏡像,就可以在安裝了Docker的任意平台上運行(一次構建,到處運行)。

安裝Docker

  1. centos版本推薦7以上,centos6安裝docker比較麻煩。如果以前安裝過docker,需要先清理:

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 安裝docker需要的工具包

    sudo yum install -y yum-utils
    

    如果提示下圖內容:

    這是由於當前系統沒有 CentOS-Base.repo 文件,使用命令重新下載一個:

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
  3. 添加yum源

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    
  4. 安裝docker

    // 中途需要輸入y進行確認
    sudo yum install docker-ce docker-ce-cli containerd.io
    
  5. 配置鏡像加速地址(阿里雲)
    5.1 首先登錄阿里雲控制台,選擇容器鏡像服務
    阿里雲控制台
    5.2 復制命令並執行
    在這里插入圖片描述

  6. 配置docker自啟

    systemctl enable docker
    

安裝mysql

mysql的容器我們可以讓docker創建和執行,但是mysql的數據不能僅存在容器內,需要我們開辟一個外部路徑專門用來存儲mysql數據。

  1. 安裝mysql

    docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
     簡單講解一下,
     -p 3306:3306:將容器的3306端口映射到主機的3306端口
     -v 源地址(宿主機):目標地址(容器),將主機的/mydata/mysql/log掛載到mysql容器的/var/log/mysql目錄
     -e 指定容器內的環境變量,這里是指定mysql密碼為root
     -d 后台運行容器,並返回容器ID
     mysql:5.7 指定mysql版本,具體版本可以在https://hub.docker.com 查詢
     
    
  2. 驗證mysql是否安裝成功

    docker ps
    

    如下,如果顯示了mysql就是安裝成功了
    在這里插入圖片描述

  3. 開啟mysql遠程訪問權限:

    先進入mysql容器
    docker exec -it mysql /bin/bash
    登錄mysql,密碼就是我們初始化時設置的root
    mysql -uroot -p
    然后開始開啟遠程訪問權限
    use mysql;
    select host,user from user;
    

    在這里插入圖片描述
    查看host不是%,需要先更新成%(如果是%跳過,直接進行下面的授權):

    update user set host = '%' where user = 'root';
    

    然后開始授權

    // 此句會開啟root的遠程訪問權限,實際根據場景應該開一個權限小的賬號
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    // 刷新權限
    flush privileges;
    
  4. 上面對mysql本身開啟了遠程訪問權限,下面需要配置防火牆,阿里雲還需要在控制台配置安全組開放3306端口。

    # 如果firewalld 沒有開啟,先開啟下
    service firewalld start
    #開放3306端口
    firewall-cmd --permanent --add-port=3306/tcp;
    #重啟防火牆(修改配置后要重啟防火牆)
    firewall-cmd --reload
    

    最后配置mysql自啟:

    docker update --restart=always mysql
    

    此時使用navicat 可以訪問MySQL了

安裝redis

  1. 首先創建redis數據存放目錄和配置文件

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
    // 編輯配置文件,開啟持久化
    vi /mydata/redis/conf/redis.conf
    // 配置文件中加入下面的命令
    appendonly yes
    
  2. 安裝redis

    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --requirepass "123456"
    
     簡單講解一下,
     -p 6379:6379:將容器的6379端口映射到主機的6379端口
     -v /mydata/redis/data:/data,將主機的/mydata/redis/data掛載到redis容器的/data目錄
     -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf,將主機的redis.conf文件替換容器的redis.conf文件,這樣我們可以在主機上對redis進行配置
    redis-server /etc/redis/redis.conf,通過redis.conf運行redis
    --requirepass "123456",設置密碼為123456
    

    添加防火牆規則開啟redis遠程訪問(阿里雲還需要配置安全組開放6379端口):

    #開放6379端口
    firewall-cmd --permanent --add-port=6379/tcp;
    #重啟防火牆(修改配置后要重啟防火牆)
    firewall-cmd --reload
    

    配置redis自啟:

    docker update --restart=always redis
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM