最近電腦常常關機要關好長時間,總是須要長按電源鍵強行關機。也不知道是怎麼回事。html
後來查看關機時的日誌,發現是mysql停不掉。這可鬧心了!怎麼辦?上網搜了搜也沒有找到什麼好的解決辦法。總不能每次關機都要長按電源鍵吧?電腦那麼貴,何況仍是我本身的電腦,壞了怎麼辦?mysql
把mysql刪掉?做爲一個寫代碼的,電腦裏也不能不裝mysql啊,每天要用的!裝在虛擬機裏?這個彷佛可行,管你mysql能不能關掉,我把虛擬機停了就行啊。而後看了看本身電腦上裝了1年多都沒打開過的virtualbox,尋思着裝在這裏也不合適啊。我電腦硬盤就250G,就爲了裝個mysql還要給它分個十幾G的硬盤,再分給它2G的內存,不合適不合適。那咋弄呢?扣了扣個人鼠標,想起來前1年跟風研究的docker,嗯~,就你了。sql
docker的命令我是記不住啦~,上網搜了搜安裝命令,仍是很簡單嗎。命令一敲刷刷的就行了。(個人電腦裝的deepin系統)docker
wget -qO- https://get.docker.com/ | sh
而後須要給它啓動起來,也是一條命令就好啦~json
sudo service docker start
docker是安裝好了,裏面怎樣跑一個系統呢?只有docker也無法運行mysql呀!這時候須要下載一個系統鏡像,這裏用Ubuntu的鏡像。首先須要搜索一下有什麼鏡像能夠用下面的命令在市場中搜索鏡像。ubuntu
//命令 sudo docker search ubuntu //結果 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]
這裏搜到了一堆鏡像,咱們選排名第一的那個吧。bash
如今須要把這個鏡像下載下來,用下面的命令:session
sudo docker pull ubuntu:18.04 //冒號後面的是版本號,不知道的話只能上網查了,不寫的話下載的是最新的
可是。網上說因爲一些不可抗力,致使國內下載鏡像很慢,因此須要添加一個鏡像。須要在 /etc/docker 的路徑下添加一個文件:daemon.json,裏面是鏡像地址:less
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
以後重啓。而後執行上面下載鏡像的命令,而後喝點咖啡等一會~~~。ssh
通過下載以後,咱們看一下如今電腦裏有那些鏡像,使用下面的命令:
sudo docker images //結果 REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 7698f282e524 2 weeks ago 69.9MB
這裏能夠看到已經有一個Ubuntu版本是18.04的鏡像。如今咱們須要啓動這個鏡像。
//命令 sudo docker run -it -d ubuntu:18.04 /bin/bash //解釋 run : 建立一個新的容器並運行一個命令 -it : 以交互模式運行容器,並從新分配一個僞輸入終端,表明-i -t --name ubuntu18: 爲容器指定一個名稱 -d : 後臺運行容器 ubuntu:18.04 : 鏡像名稱 /bin/bash : 運行鏡像中的程序,沒有的話鏡像會直接停掉
如今鏡像是啓動成功了,可是我還要登進去才行呀。這時候須要查看如今有那些容器在運行,執行:
//命令 sudo docker ps -a //解釋 ps : 列出容器 -a : 顯示全部的容器,包括未運行的 //結果 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ce6fa95862c ubuntu:18.04 "/bin/bash" 6 minutes ago Up 6 minutes brave_mendeleev
這裏咱們能夠看到有一個NAME是brave_mendeleev的容器在運行之中。如今咱們進入這個容器。執行下面的命令
//命令 sudo docker exec -it brave_mendeleev /bin/bash //解釋 brave_mendeleev: 容器名稱 exec : 在運行的容器中執行命令 //結果 hjx@hjx-PC:/etc/docker$ sudo docker exec -it brave_mendeleev /bin/bash root@1ce6fa95862c:/#
這樣咱們就成功的登陸到這個鏡像爲ubuntu18.04版本的容器裏面了。如今咱們就能夠在裏面安裝mysql啦~
安裝mysql我本身喜歡直接用 apt安裝。我在這裏直接輸入:
apt install mysql-server-5.7
後發如今容器中也是能夠安裝成功的。安裝成功後,咱們須要將容器中的mysql端口綁定到本身主機的3306端口上。這裏的步驟是:
1:停掉容器(不停掉也行)
//中止容器 sudo docker stop brave_mendeleev //解釋 stop : 容器生命週期管理命令,一共有下面命令構成: start : 啓動容器 stop : 中止容器 restart : 重啓容器
2:將安裝好mysql的容器提交爲一個新的鏡像
//命令 sudo docker commit brave_mendeleev ub/mysql //解釋 commit : 從容器建立一個新的鏡像 ub/mysql : 新的鏡像名稱
3:並綁定端口並啓動新的鏡像
額。。。這裏玩崩了。。。沒有弄成。/(ㄒoㄒ)/~~ 我決定在啓動ubuntu鏡像的時候就綁定一下3306端口,而後在從新執行上面的操做。 通過漫長的操做。在刪除了原有容器,從新綁定3306端口啓動,登陸容器,安裝mysql後,完美的安裝並運行成功。
恩,直接搜索鏡像mysql,而後啓動就行了😂😂😂
//下載mysql5.7鏡像 sudo docker pull mysql:5.7 //綁定3306端口啓動 sudo docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 //解釋 -e MYSQL_ROOT_PASSWORD=123456 : 初始化 root 用戶的密碼, 以後還有其餘的一堆參數,這裏我用不到,就不寫啦
完
拜拜~~