VirtualBox+Vagrant+Centos 7,安裝Docker,使用Docker安裝配置MySQL


一.安裝Linux虛擬機

本次講解的是開源免費的虛擬機實現方案:VirtualBox+Vagrant

1.下載VirtualBox:

 1.1 瀏覽器搜索VirtualBox,進入官網

1.2 點擊下載Windows版本

 

1.3 安裝,建議不要安裝在C盤,安裝完成打開后如下圖

1.4 電腦開啟虛擬化技術

注:電腦配置低或老電腦一般不會開啟虛擬化

是否開啟判斷方式:如果電腦曾經安裝過VMware+CentOS,並且正確啟動,肯定已經打開了虛擬化

2.安裝Vagrant獲取並安裝系統

2.1 瀏覽器搜索Vagrant,進入官網

2.2 點擊下載Windows 64版本

 

 

 

 

2.3 安裝,建議不要安裝在C盤,安裝完重啟電腦

2.4 判斷是否安裝完成:cmd中輸入vagrant,如果有一堆命令提示,就表明安裝成功! 

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。

Tomcat安裝完啟動之后,W10內的瀏覽器輸入“虛擬機ip:8080”如果能看到頁面或者404,表示安裝完成。404的原因是webapps下沒有ROOT項目,可以自己在docker內的Tomcat內的webapps下新建文件夾ROOT,然后往這個文件夾內復制一個HTML,然后再次訪問就不是404而是自己放的頁面了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM