前言
最近電腦經(jīng)常關(guān)機(jī)要關(guān)好長(zhǎng)時(shí)間,老是需要長(zhǎng)按電源鍵強(qiáng)行關(guān)機(jī)。也不知道是怎么回事。
后來查看關(guān)機(jī)時(shí)的日志,發(fā)現(xiàn)是mysql停不掉。這可鬧心了!怎么辦?上網(wǎng)搜了搜也沒有找到什么好的解決辦法??偛荒苊看侮P(guān)機(jī)都要長(zhǎng)按電源鍵吧?電腦那么貴,況且還是我自己的電腦,壞了怎么辦?
把mysql刪掉?作為一個(gè)寫代碼的,電腦里也不能不裝mysql啊,天天要用的!裝在虛擬機(jī)里?這個(gè)似乎可行,管你mysql能不能關(guān)掉,我把虛擬機(jī)停了就行啊。然后看了看自己電腦上裝了1年多都沒打開過的virtualbox,尋思著裝在這里也不合適啊。我電腦硬盤就250G,就為了裝個(gè)mysql還要給它分個(gè)十幾G的硬盤,再分給它2G的內(nèi)存,不合適不合適。那咋弄呢?扣了扣我的鼠標(biāo),想起來前1年跟風(fēng)研究的docker,嗯~,就你了。
開始把mysql安裝進(jìn)docker
安裝docker
docker的命令我是記不住啦~,上網(wǎng)搜了搜安裝命令,還是很簡(jiǎn)單嗎。命令一敲刷刷的就好了。(我的電腦裝的deepin系統(tǒng))
wget -qO- https://get.docker.com/ | sh
然后需要給它啟動(dòng)起來,也是一條命令就好啦~
sudo service docker start
docker運(yùn)行Ubuntu
docker是安裝好了,里面怎樣跑一個(gè)系統(tǒng)呢?只有docker也沒法運(yùn)行mysql呀!這時(shí)候需要下載一個(gè)系統(tǒng)鏡像,這里用Ubuntu的鏡像。首先需要搜索一下有什么鏡像可以用下面的命令在市場(chǎng)中搜索鏡像。
//命令 sudo docker search ubuntu //結(jié)果 NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 9583 [OK] dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 304 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 217 [OK] consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 179 [OK] ubuntu-upstart Upstart is an event-based replacement for th… 98 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 97 [OK]
這里搜到了一堆鏡像,我們選排名第一的那個(gè)吧。
現(xiàn)在需要把這個(gè)鏡像下載下來,用下面的命令:
sudo docker pull ubuntu:18.04 //冒號(hào)后面的是版本號(hào),不知道的話只能上網(wǎng)查了,不寫的話下載的是最新的
但是。網(wǎng)上說由于一些不可抗力,導(dǎo)致國內(nèi)下載鏡像很慢,所以需要添加一個(gè)鏡像。需要在 /etc/docker 的路徑下添加一個(gè)文件:daemon.json,里面是鏡像地址:
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
之后重啟。然后執(zhí)行上面下載鏡像的命令,然后喝點(diǎn)咖啡等一會(huì)~~~。
經(jīng)過下載之后,我們看一下現(xiàn)在電腦里有那些鏡像,使用下面的命令:
sudo docker images //結(jié)果 REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 7698f282e524 2 weeks ago 69.9MB
這里可以看到已經(jīng)有一個(gè)Ubuntu版本是18.04的鏡像?,F(xiàn)在我們需要啟動(dòng)這個(gè)鏡像。
//命令 sudo docker run -it -d ubuntu:18.04 /bin/bash //解釋 run : 創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令 -it : 以交互模式運(yùn)行容器,并重新分配一個(gè)偽輸入終端,代表-i -t --name ubuntu18: 為容器指定一個(gè)名稱 -d : 后臺(tái)運(yùn)行容器 ubuntu:18.04 : 鏡像名稱 /bin/bash : 運(yùn)行鏡像中的程序,沒有的話鏡像會(huì)直接停掉
現(xiàn)在鏡像是啟動(dòng)成功了,但是我還要登進(jìn)去才行呀。這時(shí)候需要查看現(xiàn)在有那些容器在運(yùn)行,執(zhí)行:
//命令 sudo docker ps -a //解釋 ps : 列出容器 -a : 顯示所有的容器,包括未運(yùn)行的 //結(jié)果 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ce6fa95862c ubuntu:18.04 "/bin/bash" 6 minutes ago Up 6 minutes brave_mendeleev
這里我們可以看到有一個(gè)NAME是brave_mendeleev的容器在運(yùn)行之中。現(xiàn)在我們進(jìn)入這個(gè)容器。執(zhí)行下面的命令
//命令 sudo docker exec -it brave_mendeleev /bin/bash //解釋 brave_mendeleev: 容器名稱 exec : 在運(yùn)行的容器中執(zhí)行命令 //結(jié)果 hjx@hjx-PC:/etc/docker$ sudo docker exec -it brave_mendeleev /bin/bash root@1ce6fa95862c:/#
這樣我們就成功的登錄到這個(gè)鏡像為ubuntu18.04版本的容器里面了?,F(xiàn)在我們就可以在里面安裝mysql啦~
ubuntu容器中安裝mysql
安裝mysql我自己喜歡直接用 apt安裝。我在這里直接輸入:
apt install mysql-server-5.7
后發(fā)現(xiàn)在容器中也是可以安裝成功的。安裝成功后,我們需要將容器中的mysql端口綁定到自己主機(jī)的3306端口上。這里的步驟是:
1:停掉容器(不停掉也行)
//停止容器 sudo docker stop brave_mendeleev //解釋 stop : 容器生命周期管理命令,一共有下面命令構(gòu)成: start : 啟動(dòng)容器 stop : 停止容器 restart : 重啟容器
2:將安裝好mysql的容器提交為一個(gè)新的鏡像
//命令 sudo docker commit brave_mendeleev ub/mysql //解釋 commit : 從容器創(chuàng)建一個(gè)新的鏡像 ub/mysql : 新的鏡像名稱
3:并綁定端口并啟動(dòng)新的鏡像
額。。這里玩崩了。。沒有弄成。/(ㄒoㄒ)/~~
我決定在啟動(dòng)ubuntu鏡像的時(shí)候就綁定一下3306端口,然后在重新執(zhí)行上面的操作。
經(jīng)過漫長(zhǎng)的操作。在刪除了原有容器,重新綁定3306端口啟動(dòng),登錄容器,安裝mysql后,完美的安裝并運(yùn)行成功。
更簡(jiǎn)單的方法
恩,直接搜索鏡像mysql,然后啟動(dòng)就好了。這么簡(jiǎn)單😂😂😂😂
//下載mysql5.7鏡像 sudo docker pull mysql:5.7 //綁定3306端口啟動(dòng) sudo docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 //解釋 -e MYSQL_ROOT_PASSWORD=123456 : 初始化 root 用戶的密碼,
之后還有其他的一堆參數(shù),這里我用不到,就不寫啦
總結(jié)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com