前言:
趁最近離職有時間,所以開始學習分布式,聽大家說windows搭建docker會有很多問題,所以決定搞一個虛擬機,用linux系統來搭建,
正文:
準備作業:
1.采用vagrant簡化搭建centos/7.
1.1 先下載visualBox https://www.virtualbox.org/ 版本 6.1.12
1.2 下載vagrant https://www.vagrantup.com/ 版本 2.2.9
1.3 下載visualBox 所需要的box(因為到時候下載的話很慢,提前用迅雷下載,速度快得多),復制的網址不能用,直接上圖,圖上標紅的就是要下載的, 網址: http://www.vagrantbox.es/

問題:
1. visualBox進行安裝需要cpu開啟虛擬化
2.當安裝完成后可以使用 vagrant -v進行測驗,出現版本號即為成功,
環境搭建:
1. 搭建系統
1.1 下載的vagrant box放入vagrant中,方便初始化(下載的box必須要在當前目錄下)
命令: vagrant box add centos/7(設定的名字) centos-7.0-x86_64.box(下載的.box名稱)
設定完成可通過vagrant box list顯示
1.2 進行初始化(這里指明box名字(centos/7),對應box list 里的box),會生成一個vagrantFile檔案,用于后期配置
命令: vagrant init centos/7
1.3 創建系統,同樣指明名字
命令: vagrant up
如果一切成功,可以在virualBox 里看的一臺虛擬機,就是我們創建的,并且處于正在運行狀態,
可以使用命令:vagrant ssh 進入系統,查看
當沒有問題后,更改網路配置,虛擬機與宿主機相互ping通
更改網路配置(提前關閉系統,采用命令與手動在virualbox關閉都一樣):找到創建目錄下的vagrantFile檔案,這里的ip是通過查看本機的分配給virualBox的地址得出,不要一樣ip,尾數更換,和我一樣加個0,XXX.XXX.XX.10,即可,更改完后,啟動生效


其他命令:vagrant halt(關閉虛擬機),vagrant up 啟動虛擬機(必須要在創建的目錄下啟動),vagrant reload (重啟虛擬機)
2.搭建系統運行環境
2.1 安裝docker(docker 相關命令都在root下,建議su root 切換成root 權限,密碼為 vagran)
官方檔案: https://docs.docker.com/engine/install/centos/
我實際操作(免除部分無效操作和更換地址):
2.1.1 安裝所需軟體包
sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
2.1.2 設定 安裝軟體地址(阿里云地址)
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.1.3 進行安裝(一路y就行)
sudo yum install docker-ce docker-ce-cli containerd.io
2.1.4 運行docker
sudo systemctl start docker
2.1.5 可以通過查看docker info 來查看docker 是否已經安裝好(如果沒安裝好,運行都不行的0.0,所以這一步沒啥必要)
2.2 docker 配置鏡像加速(可以通過阿里云容器服務里看) 阿里云地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

2.2.* 大部分教程到上一步就沒了,但是我實際配置程序中,配置加速后,依然不可以加速(可以通過 docker pull mysql:5.7 試試,能否下載成功),找了很多資料,最后看到需要在
vim /etc/resolv.conf
在后面添加(先雙擊i,進入插入模式,添加完畢后,按兩次Esc鍵,然后:wq ,保存并退出)
nameserver 8.8.8.8
到此,再次 docker pull mysql:5.7 ,成功下載,(ps:鏡像加速的網路配置在重啟后就沒了,再次添加或者尋找可永久添加的方法,這里就不寫了)
2.3 使用docker安裝 mysql
2.3.1 將埠映射出去,這樣可以直接訪問虛擬機IP+埠就可以同時訪問docker里的mysql
# --name指定容器名字 -v目錄掛載 -p指定埠映射 -e設定mysql引數 -d后臺運行 sudo 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
運行成功后,可以通過docker ps來查看所有正在運行的容器
可以通過my.conf 設定一下格式
vi /mydata/mysql/conf/my.conf [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve
2.3.2 設定完成后,還并不可以通過宿主機navicet 連接,還需要設定可遠程訪問,
2.3.3
mysql 設定遠程連接
iptables 開啟埠映射:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT iptables -L -n (查看埠是否啟用)
進入mysq:
docker exec -it mysql1 mysql -uroot -p root
進入mysql資料庫:
use mysql
修改root訪問權限(先查看是否只有一個root,如果有兩個root角色就會報錯)
update user set host = '%' where user = 'root';
flush privileges; 重繪權限
重啟docker和mysql:
systemctl restart docker和docker start mysql

至此,連接成功,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/79296.html
標籤:Java
上一篇:集合的學習
