Docker是什么
Docker可以理解成一個虛擬機(jī)
Docker是一個輕量級的應(yīng)用容器框架
Docker可以打包衣吠、發(fā)布亚享、運(yùn)行任何應(yīng)用
Docker應(yīng)用場景
Web應(yīng)用的自動化打包和發(fā)布
自動化測試和持續(xù)集成、發(fā)布
在服務(wù)器環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用
從頭編譯或者擴(kuò)展現(xiàn)有OpenShift或Cloud Foundry平臺來搭建自己的Paas環(huán)境
Docker架構(gòu)
Docker中的鏡像
Docker的鏡像相當(dāng)于我們以前的軟件碟片掰读,這些碟片存儲著各種各樣的內(nèi)容。鏡像是創(chuàng)建容器的模板。
Docker中的容器
Docker的容器相當(dāng)于獨(dú)立運(yùn)行的進(jìn)程裁赠。也就是將碟片中的軟件運(yùn)行了起來。
Docker常用命令
下載容器鏡像: docker pull 鏡像名稱
運(yùn)行鏡像: docker run 鏡像名稱 運(yùn)行命令
在容器中安裝新程序:docker run 容器名稱 apt-get install -y 程序名稱
保存對容器的修改:docker commit 容器id 鏡像名稱
檢查運(yùn)行中的鏡像:docker inspect efe
發(fā)布自己的鏡像:docker push 鏡像名稱
Docker中安裝運(yùn)行 mysql
下載最新版本的mysql: docker pull mysql:latest
創(chuàng)建相關(guān)本地目錄:mkdir conf? ? ? mkdir? data? ? mkdir logs
運(yùn)行mysql:docker run --name mysql.latest -p 3306:3306 -v /data:/var/lib/mysql -v /conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
1. --name mysql.latest 給容器命名
2. -p 3306:3306 映射端口 本地端口:容器端口
3. -v /data:/var/lib/mysql? 目錄映射 本地目錄:容器目錄
4. -e MYSQL_ROOT_PASSWORD=123456 初始密碼
連接mysql數(shù)據(jù)庫:mysql -h 127.0.0.1 -u root -p
?*如碰到高版本數(shù)據(jù)庫造成命令行無法連接問題(例如:Authentication plugin 'caching_sha2_password' cannot be loaded.....)赴精,解決辦法如下:
1. 進(jìn)入mysql容器:docker exec -it mysql.latest /bin/bash
2. 連接數(shù)據(jù)庫:mysql -uroot -p
3. 修改密碼:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';