Centos7.2 安裝docker、mysql和redis

環境信息

Docker是什麼?

Docker就是一個平臺,這個平臺具有開發、發佈和運行應用程序的功能,在項目生命週期中,咱們能夠運用Docker實現快速交付、測試和部署。Docker經過將運行環境打包成一個鏡像,就能夠在安裝了Docker的任意平臺上運行(一次構建,處處運行)。mysql

安裝Docker

  1. centos版本推薦7以上,centos6安裝docker比較麻煩。若是之前安裝過docker,須要先清理:linux

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

    sudo yum install -y yum-utils

    若是提示下圖內容:

    這是因爲當前系統沒有 CentOS-Base.repo 文件,使用命令從新下載一個:sql

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

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

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

  6. 配置docker自啓安全

    systemctl enable docker

安裝mysql

mysql的容器咱們可讓docker建立和執行,可是mysql的數據不能僅存在容器內,須要咱們開闢一個外部路徑專門用來存儲mysql數據。bash

  1. 安裝mysqlapp

    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
相關文章
相關標籤/搜索