還不會Docker基本操作?來,手把手教你搭建Docker環(huán)境

前言
Docker作為一個重要的云容器,在目前的線上部署環(huán)境中被廣泛應用,甚至很多公司已經(jīng)在用K8S了,但是我們絕大多數(shù)后端開發(fā)小伙伴可能連Docker這樣的容器都還沒有真正使用過,今天我們就簡單的開箱一下這一款迷之容器,揭開它神秘的面紗。
最近又開始上手折騰Docker,是因為新公司的應用都是部署在云環(huán)境的,而且服務比較多,為了快速搭建本地開發(fā)環(huán)境,所以我就又一次拾起了尚未入門的docker,探索一下它真實的面目,今天講的內容會比較淺顯,保證你上手能用,高級用法等我研究透了再說,另外最近我也接觸了ES的一些內容,后面應該會抽時間研究琢磨,等到我覺得時候分享的時候,我會發(fā)出來的。
另外說一句,最近一直沒有更新什么技術內容,原因之前說過了,現(xiàn)在所有的事情都很順利,所以技術學習更新從這周開始恢復正常,后面就開始漫長的、無止境的學習之路,讓我們一起進步吧!!!!

Docker安裝
下載
直接訪問docker官網(wǎng)進行下:
https://www.docker.com/products/docker-desktop
選擇選擇對應的版本,這里我的操作系統(tǒng)是windows:

安裝
安裝過程很簡單,雙擊下載好的exe文件,其他操作系統(tǒng)類似,然后等待安裝完成,因為當前系統(tǒng)已經(jīng)安裝過了,所以我就沒法演示了,網(wǎng)上爬了一張圖:

啟停docker服務
一般安裝成功后會自動啟動docker服務,如果沒有啟動,你可以手動啟動,這里以win10為例:

在任務欄右邊找到docker的小圖標,右鍵選擇自己需要的操作,即可對docker服務進行啟停。如果任務欄沒有docker的小圖標,可以在桌面雙擊運行docker應用快捷方式進行啟動

docker簡單配置
因為docker并非國內產(chǎn)物,所以在下載相關鏡像資源的時候特別慢,為了提高我們資源的下載速度,我們需要配置docker的鏡像信息,右鍵任務欄docker小圖標,打開docker的控制面板(或者雙擊小圖標):

點擊設置按鈕,選擇docker Engine,修改其中registry-mirrors的配置信息:

配置信息是json格式:
"registry-mirrors":?[
????"https://reg-mirror.qiniu.com/",
????"https://docker.mirrors.ustc.edu.cn/",
????"https://hub-mirror.c.163.com/"
??]
其中第一個地址是七牛的鏡像,第二個是中科大的鏡像,最后一個是網(wǎng)易的鏡像。配置完成后,下載資源速度會特別快,不信的小伙伴可以對比下。
基本操作
下面是一些常用的操作,小伙伴們可以參考下:
基本命令
1. 拉取鏡像
$?docker?pull?ubuntu:latest
#或者
$?docker?pull?ubuntu
解釋下上面的命令,ubuntu表示鏡像資源的名稱,latest表示版本信息,如果不加版本信息,一般會默認拉取最新版本,也就是latest,當然你也可以根據(jù)自己的需要指定版本信息。
所以,上面命令的作用就是將ubuntu的最新鏡像拉至本地倉庫,一般在拉取鏡像資源之前,我們都會先通過docker search搜索一下鏡像資源,確保資源存在。
2. 查看本地鏡像
$?docker?images
上面這個命令就很簡單,就是展示本地已經(jīng)拉取的鏡像資源:

3. 運行容器
$?docker?run?-itd?--name?ubuntu-test?ubuntu
這個命令應該是最常用的,表示運行某個鏡像,但是針對不同的鏡像指令可能會有差異,我們在具體使用的時候根據(jù)自己的需要進行添加,相信的指令我們后面在詳細研究。
上面命令的作用是,啟動ubuntu的鏡像,鏡像實例的名稱為ubuntu-test,因為我們沒有加版本號,所以默認使用的鏡像資源是latest,如果latest版本不存在,就會報錯
4. 搜索鏡像
$?docker?search?image-name
例如:
$?docker?search?redis
5. 常用操作
下面是一些常用組件在docker中的部署、啟動操作命令,各位小伙伴可以參考下:
安裝并運行nginx
#?拉取最新版本
$?docker?pull?nginx:latest
#?啟動運行
$?docker?run?--name?nginx-test?-p?8080:80?-d?nginx
其中,name和前面一樣,表示啟動的實例名稱;p表示端口號,8080:80表示將本地的8080端口映射到docker的80端口,這時候我們就可以通過當前主機de8080端口來訪問我們docker中的nginx;d表示在后臺運行,這時候就算你關閉了啟動的命令行窗口,容器依然會正常運行;最后面的nginx其實是我們偷懶省略了:latest,它等同于nginx:latest
安裝并運行mysql
# docker 中下載 mysql
$?docker?pull?mysql
#啟動
$?docker?run?--name?mysql-test?-p?3306:3306?-e?MYSQL_ROOT_PASSWORD=root?-d?mysql:5.7.19
#進入容器
$?docker?exec?-it?mysql?bash
#登錄mysql
mysql?-u?root?-p
ALTER?USER?'root'@'localhost'?IDENTIFIED?BY?'root';
#添加遠程登錄用戶
CREATE?USER?'syske'@'%'?IDENTIFIED?WITH?mysql_native_password?BY?'123456';
GRANT?ALL?PRIVILEGES?ON?*.*?TO?'syske'@'%';
這里大部分的參數(shù)都和前面的作用一樣,唯一不同的是多了e,這里-e的作用是設置環(huán)境變量,也就是說MYSQL_ROOT_PASSWORD=root是要設置的環(huán)境變量,作用就是設置root用戶的密碼。
這里再增加另一個版本:
$?docker?run?--rm?--name?mysqlTemp?-it?-v?/usr/local/mysql/:/var/lib/mysql?-e?MYSQL_ROOT_PASSWORD=123456??mysql:5.7?/bin/bash
cp?/etc/mysql/my.cnf?/var/lib/mysql
-- rm 退出后就刪除該容器
-v /usr/local/mysql/:/var/lib/mysql 裝主機目錄/usr/local/mysql/映射Docker中的/var/lib/mysql目錄
-it 交互模式
/bin/bash 進入 bash 命令模式
安裝并運行redis
#?拉取最新版本鏡像
$?docker?pull?redis:latest
#?啟動運行
$?docker?run?-itd?--name?redis-test?-p?6379:6379?redis
$?docker?run?--name?redis?-p?6380:6379?redis-test?--requirepass?123456
#前邊是宿主機端口?后面是docker使用的端口
參數(shù)大部分都和前面一致,--requirepas是這只redis的訪問密碼
安裝activemq
$?docker?run?-d?--name?myactivemq?-p?61616:61616?-p?8162:8161?docker.io/webcenter/activemq:latest
這里沒什么特殊的參數(shù),不做過多說明
查看所有容器
$?docker?ps?-a
這里就是查看docker的進程,和linux的ps命令類似,看到這個命令我就猜到她肯定還有另一個命令:
$?docker?kill?pid
然后我試了下,果然有效,依然和linux類似
啟動已存在容器
$?docker?start?容器ID
結語
原本打算通過docker搭建本地開發(fā)測試環(huán)境的,但是新公司采用的都是線上集成開發(fā)環(huán)境,所以目前這塊僅用于日常學習和練習。雖然這次了解的不多,但是我還是發(fā)現(xiàn)用docker搭建本地開發(fā)測試環(huán)境簡直美滋滋,而且美的不要不要的,你想想原來你每次搞個測試環(huán)境要安裝這個組件,又要安裝那個組件,有了docker一行命令一個組件就可以搞定了,而且如果環(huán)境出現(xiàn)問題了,還可以把容器刪除了重頭再來,而不像本地,搞壞了,重新安裝還會出現(xiàn)各種問題,所以小伙伴們,趕緊把docker用起來,開發(fā)真的美滋滋!??
好了,大家晚安哦!
- END -