作為一個(gè)coder眼俊,在學(xué)習(xí)技術(shù)過(guò)程中,經(jīng)常需要搭建各種開(kāi)發(fā)環(huán)境敞贡,以及模擬服務(wù)器操作泵琳,所以摄职,這個(gè)時(shí)候最好需要搭建好虛擬機(jī)來(lái)完成各種模擬操作誊役。這里我就選擇使用VMware和VirtualBox等搭建虛擬機(jī)后,我最后選擇使用VirtualBox+vagrant來(lái)完成這個(gè)操作谷市,因?yàn)檫@個(gè)兩者都是免費(fèi)的蛔垢,而且支持很方便的命令行操作,虛擬機(jī)也很穩(wěn)定迫悠。
我的環(huán)境是mac鹏漆,但是此方法window和mac都是通用的,window需要下載一個(gè)bash命令行工具會(huì)好操作一些。
下面分為以下幾個(gè)步驟
- 1艺玲、下載virtualBox和vagrant
- 2括蝠、準(zhǔn)備vagrantFile
- 3、使用vagrant命令搭建好centos虛擬機(jī)
- 4饭聚、使用root登陸
- 5忌警、免密登陸
- 6、安裝docker
步驟一:下載virtualBox和vagrant
- virtualBox下載地址:https://www.virtualbox.org/wiki/Downloads
- vagrant下載地址:https://www.vagrantup.com/downloads.html
步驟二:準(zhǔn)備vagrantFile
- 在一個(gè)文件新建一個(gè)VagrantFile文件秒梳,把下面內(nèi)容復(fù)制到VagrantFile內(nèi)
- 這里是兩節(jié)點(diǎn)法绵,如果需要多個(gè)節(jié)點(diǎn),在boxes配置數(shù)組里面多添加幾個(gè)就好了
boxes = [
{
:name => "centos01",
:eth1 => "192.168.5.41" ,
:mem => "1024" ,
:cpu => "1"
},
{
:name => "centos02",
:eth1 => "192.168.5.42" ,
:mem => "1024" ,
:cpu => "1"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm" , :id , "--memory" , opts[:mem]]
v.customize ["modifyvm" , :id , "--cpus" , opts[:cpu]]
end
config.vm.network:public_network,ip:opts[:eth1]
end
end
end
步驟三:使用vagrant命令搭建好centos虛擬機(jī)
- 進(jìn)入放置vagrantFile的酪碘,使用vagrant up命令
- mac可以直接只用terminal朋譬,window可以安裝bash工具
注意:
-
可能vagrant up會(huì)很慢,因?yàn)樾枰螺dcentos的box鏡像兴垦,如果出現(xiàn)卡著不動(dòng)的情況徙赢,可以去下面提示的地址去手動(dòng)下載box,然后使用vagrant add box的指令滑进,添加到本地犀忱,然后,就會(huì)使用剛添加的box扶关,就會(huì)很快了阴汇。
box地址.png -
下面這個(gè)地方需要選擇網(wǎng)絡(luò),選擇1
選擇網(wǎng)絡(luò).png -
安裝完畢节槐,virtualBox會(huì)多出一個(gè)虛擬機(jī)搀庶,如果你配置了3個(gè),結(jié)果只出現(xiàn)了一個(gè)铜异,就control+z,停掉哥倔,再次運(yùn)行vagrant up
virtualBox中出現(xiàn)一個(gè)虛擬機(jī).png
步驟四:使用root登陸
由于vagrant默認(rèn)是限定了不允許root用戶登陸,而且只能vagrant up登陸揍庄,很多操作都有權(quán)限限制,例如vi /etc/ssh/sshd_config咆蒿。這就導(dǎo)致了對(duì)這個(gè)虛擬機(jī)沒(méi)有100%掌控力的感覺(jué),這就不能忍了蚂子。所以接下來(lái)我要獲取root權(quán)限沃测,自己想怎么登陸就怎么登陸。
步驟如下:
- cd 到剛才那個(gè)vagrant目錄食茎,然后使用vagrant up去登陸蒂破,這個(gè)時(shí)候就能用vagrant這個(gè)用戶登陸進(jìn)了虛擬機(jī)。
- 使用
sudo chmod 777 /etc/ssg/sshd_confg
别渔,給這個(gè)文件添加上可修改的權(quán)限 - 使用
vi /etc/ssg/sshd_confg
修改這個(gè)文件以下幾個(gè)配置- port 22 -- 開(kāi)啟登陸端口
- PermitRootLogin yes -- 允許root登陸
- passwordAuthentication yes -- 允許密碼登陸
- 修改完后保存重啟sshd讓配置生效:
service sshd restart
- 需要輸入
root
的密碼附迷,密碼是vagrant
- 到這里已經(jīng)可以使用root賬號(hào)登陸了惧互,退出虛擬機(jī),使用賬號(hào)
root
,密碼vagrant
登陸 - 指令:
ssh root@192.168.5.66
喇伯,輸入密碼vagrant
喊儡,這個(gè)192的ip可以在虛擬機(jī)中使用ip addr
查看 - 登陸成功,現(xiàn)在已經(jīng)是root賬戶了稻据。
步驟五:免密登陸
每次主機(jī)登陸虛擬器都需要免密挺麻煩的管宵,這個(gè)時(shí)候一般做法都是使用免密登陸了,步驟如下:
- 創(chuàng)建ssh key :
ssh-keygen -t rsa
,一路回車(chē)就好 - 在
/root/.ssh
目錄下添創(chuàng)建文件touch authorized_keys
- 宿主機(jī)需要免密登陸攀甚,就把宿主機(jī)的public key添加到authorized_keys中箩朴。
- 添加成功后直接使用:
ssh root@192.168.5.66
就好了,不再輸密碼秋度,然后就可以使用secureCRT等工具去連就好了炸庞。
步驟六:安裝docker
docker是開(kāi)發(fā)學(xué)習(xí)的一個(gè)很重要的工具,所以我這里就裝一下荚斯,參考官網(wǎng)的教程
刪除之前的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安裝前置工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 官方源,網(wǎng)速太慢yum斷連埠居,不建議
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源,國(guó)內(nèi)速度快 (本文設(shè)置這個(gè)源事期,安裝成功)
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//安裝容器
sudo yum install docker-ce docker-ce-cli containerd.io
//啟動(dòng)docker
sudo systemctl start docker
//查看docker版本
sudo docker version
按上面的步驟安裝完畢后滥壕,如果pull image的時(shí)候如果很慢,可以使用中科大的鏡像源
- vim /etc/docker/daemon.json
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
- 然后重啟docker :
service docker restart