環境信息
Docker是什么?
Docker就是一個平台,這個平台具備開發、發布和運行應用程序的功能,在項目生命周期中,我們可以運用Docker實現快速交付、測試和部署。Docker通過將運行環境打包成一個鏡像,就可以在安裝了Docker的任意平台上運行(一次構建,到處運行)。
安裝Docker
-
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
-
安裝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
-
添加yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安裝docker
// 中途需要輸入y進行確認 sudo yum install docker-ce docker-ce-cli containerd.io
-
配置鏡像加速地址(阿里雲)
5.1 首先登錄阿里雲控制台,選擇容器鏡像服務
5.2 復制命令並執行
-
配置docker自啟
systemctl enable docker
安裝mysql
mysql的容器我們可以讓docker創建和執行,但是mysql的數據不能僅存在容器內,需要我們開辟一個外部路徑專門用來存儲mysql數據。
-
安裝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 查詢
-
驗證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
-
首先創建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