一.安裝Linux虛擬機
本次講解的是開源免費的虛擬機實現方案:VirtualBox+Vagrant
1.下載VirtualBox:
1.1 瀏覽器搜索VirtualBox,進入官網
1.2
1.3 安裝,建議不要安裝在C盤,安裝完成打開后如下圖
1.4 電腦開啟虛擬化技術
注:電腦配置低或老電腦一般不會開啟虛擬化
是否開啟判斷方式:如果電腦曾經安裝過VMware+CentOS,並且正確啟動,肯定已經打開了虛擬化
2.安裝Vagrant獲取並安裝系統
2.1 瀏覽器搜索Vagrant,進入官網
2.2 點擊下載Windows 64版本
2.3 安裝,建議不要安裝在C盤,安裝完重啟電腦
2.4
2.5 獲取鏡像:在cmd中輸入vagrant init centos/7
,獲取一個CentOs鏡像,效果如下圖,意思為在你電腦系統當前登錄用戶目錄下,創建了一個Vagrantfile文件
注: vagrant init xxx
表示初始化一個鏡像,xxx取值來自於vargrant的鏡像倉庫。
2.6 啟動虛擬環境:cmd中輸入命令vagrant up
,會去官方下載鏡像,並自動導入到VirtualBox內,並自動啟動。下載是一個漫長的過程,出現如下圖這樣的話表示啟動成功:
3.使用系統
3.1 接着cmd繼續下去:
ctrl+c 結束啟動提示
vagrant ssh 連接虛擬機
連接完畢,即可把cmd當成xshell使用。
3.2 上上圖中出現的xfyuao_default
虛擬機上右鍵可以啟動或停止虛擬機,也可在cmd中輸入vagrant up
啟動虛擬機
3.3 可能的問題:VirtualBox可能會和以下軟件有沖突導致虛擬機無法啟動等:紅蜘蛛、凈網大師、360、其他未知軟件。解決辦法:卸載這些軟件並重啟電腦。
4.其他終端連接
4.1 為方便我們外部的W10直連虛擬機,需要在Vagrantfile文件內配置虛擬機的ip地址,ip地址段要和VirtualBox保持一致。
Vagrantfile文件在電腦登錄用戶的目錄下,如我的在:C:\Users\xfyuao
ip段查看方式如下圖,要在cmd中輸入ipconfig/all
,找到對應網卡的地址
編輯Vagrantfile文件,大約在35行,#表示注釋,復制#后內容,粘貼到下一行,ip改為VirtualBox同一地址段,如上圖可修改為:
config.vm.network "private_network", ip: "192.168.56.x"
其中x取2-255之間,建議范圍100-200,修改后如下圖:
4.2 重啟虛擬機或輸入命令vagrant rolad
重啟虛擬機,即可和W10互相ping通
4.3 開啟遠程登錄,修改“/etc/ssh/sshd_config”
PermitRootLogin yes
PasswordAuthentication yes
然后重啟SSHD
systemctl restart sshd
即可使用Xshell等進行遠程連接
二.Docker
docker是一種虛擬化容器技術,基於鏡像,可以秒級啟動各種容器,每一種容器都是一個完整的運行環境,容器之間互相隔離。換句話說就是docker會為每個軟件都創建一個linux系統存放它們。
1.Cent OS下安裝Docker
1.1 安裝docker,獲取響應系統下的安裝命令,如下圖:
1.2 以下命令均來自上圖。先卸載舊版本:連上centos的終端,建議使用Xshell,管理員角色運行
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.3 要執行的命令和含義:
命令 | 含義 |
---|---|
第一個命令卸載舊版本在上面呢,這里不好粘貼 | shell中見到換行就執行,添加\表示當前命令未結束 |
yum install -y yum-utils |
安裝依賴工具 |
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | docker安裝地址 |
yum install docker-ce docker-ce-cli containerd.io | 安裝docker引擎、客戶端、容器,需要輸入y確認兩次 |
systemctl start docker | 啟動docker |
docker -v | 查看版本 |
docker images | 查看使用docker下載的所有鏡像 |
systemctl enable docker | 開機啟動docker |
docker pull 軟件名:版本 | 下載鏡像 |
docker ps | 查看docker中正在運行的容器 |
docker ps -a | 查看docker中所有的容器 |
docker run xxx | 根據某個鏡像創建並啟動一個容器,就是安裝軟件,run一次安一個 |
docker start 容器名/id | 啟動容器 |
docker stop 容器名/id | 停止容器 |
docker restart 容器名/id | 重啟容器 |
docker rm 容器名/id | 刪除容器,就是卸載軟件 |
1.4 docker是國外的,默認下載鏡像的地址是國外,我們更改為國內鏡像。去阿里雲獲取鏡像加速地址,登錄阿里雲,進入控制台,如下圖
1.5 運行下面四個命令即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fs0pkpfq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.Docker內安裝MySQL
在docker下安裝一個軟件分為以下幾步:1.獲取鏡像版本;2.pull安裝;3.run命令啟動該鏡像的一個容器;4.(可選)exec進入容器查看安裝的軟件;5.(可選)設置docker啟動時就啟動、停止、啟動容器
2.1 去docker鏡像倉庫找到要下載的軟件的版本,搜索docker hub
進入官網
2.2 我們下載mysql5.7版本,輸入命令
docker pull mysql:5.7
2.3 啟動一個mysql容器,輸入下段代碼。如果電腦內自行安裝過mysql(不是使用docker),可能出現3306端口被占用的問題,這里把冒號前的3306改成3307等,再粘貼運行,改完再粘。
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=admin \
-d mysql:5.7
代碼含義:因為docker會為每個軟件建立一個獨立的運行環境,也就是docker在安裝一個軟件前,先在自己內部創建一個linux系統,然后在這個linux系統內安裝這個軟件。
第一行:啟動一個容器,給這個容器命名為mysql,-p端口映射,把容器內的3306端口映射到docker外,映射成3306;
第2-4行:-v是掛載,可以理解為快捷方式,指的是把docker內的linux內的目錄創建一個快捷方式,:前是快捷方式在docker外的位置,:后是docker內的linux內的目錄;
第5行:-e是設置環境變量,這里修改root用戶的密碼為admin;
第6行:被啟動容器基於mysql:5.7鏡像(docker images內的一個)
注意: pull下來的叫鏡像(軟件安裝包),一個鏡像可以啟動(run)很多個容器,所以下次使用這個mysql時就使用start和stop來啟動和停止mysql容器,如果使用run會新建一個mysql容器。你可以使用rm命令移除一個停止運行的容器。
2.4 驗證docker的獨立容器
查看正在運行的鏡像: docker ps
進入到某個容器內部,也就是docker創建的linux的內部:
docker exec -it 容器名或id /bin/bash
在容器內部可以查看mysql安裝位置: whereis mysql
2.5 修改mysql默認編碼
切換到/mydata/mysql/conf目錄下,編輯my.cnf,插入如下內容:
[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.6 設置啟動docker時,即運行mysql
docker update mysql --restart=always
3 自行安裝JDK、Tomcat、Nginx、Redis......
JDK安裝,無需配置環境變量,自動配好的,注意是安裝在docker內部的,外部用不了,所以要把項目部署在docker內才能使用docker安裝的JDK。