Docker就是一個平臺,這個平臺具有開發、發佈和運行應用程序的功能,在項目生命週期中,咱們能夠運用Docker實現快速交付、測試和部署。Docker經過將運行環境打包成一個鏡像,就能夠在安裝了Docker的任意平臺上運行(一次構建,處處運行)。mysql
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
安裝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
添加yum源docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝dockershell
// 中途須要輸入y進行確認 sudo yum install docker-ce docker-ce-cli containerd.io
配置鏡像加速地址(阿里雲)
5.1 首先登陸阿里雲控制檯,選擇容器鏡像服務
5.2 複製命令並執行
centos
配置docker自啓安全
systemctl enable docker
mysql的容器咱們可讓docker建立和執行,可是mysql的數據不能僅存在容器內,須要咱們開闢一個外部路徑專門用來存儲mysql數據。bash
安裝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 查詢
驗證mysql是否安裝成功
docker ps
以下,若是顯示了mysql就是安裝成功了
開啓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;
上面對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數據存放目錄和配置文件
mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf // 編輯配置文件,開啓持久化 vi /mydata/redis/conf/redis.conf // 配置文件中加入下面的命令 appendonly yes
安裝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