Docker基本操作
1. 引言
在虛擬化技術(shù)中,docker占據(jù)了重要的地位,很多公司在Devops開發(fā)運維中都會用到,在多服務(wù)應(yīng)用,結(jié)合k8s,能讓測試上線提高效率,在此不深入的講解,還是那句話,我們是做開發(fā)的,不是做運維,了解就可以,如果需要帶運維團隊,也需要知道
2. Docker的安裝
實例的ubuntu系統(tǒng)為例來說明,系統(tǒng)版本為18.04,安裝docker很簡單,一句話搞定:
Sudo apt-get install docker.io
要注意我們首先要設(shè)置好國內(nèi)的鏡像源,修改/etc/apt/source.list問價,將默認的鏡像域名更改為國內(nèi)的,比如阿里云、163、清華...
執(zhí)行后等待一會兒,喝杯茶,刷刷手機,看看新聞,幾分鐘就安裝好了,安裝完成后測試:docker -v,查看docker的版本,會安裝的當(dāng)前最新版本。
同樣的,docker安裝完成之后,修改為國內(nèi)的鏡像源,在/etc/docker/daemon.json中,添加國內(nèi)docker鏡像源
3. Docker的基本操作
3.1 拉取鏡像
鏡像是已經(jīng)打包好了一個或多個應(yīng)用程序,可以在docker的運行
~$ docker pull Tomcat
我們的演示都是以tomcat鏡像為例,在遠程倉庫中拉取鏡像用pull,上面的命令直接執(zhí)行,是拉取tag 為lastest的鏡像,而且是官方的,如果我們需要具體那一個版本的,首先執(zhí)行:
Docker search tomcat
找到自己想要的tag,然后pull下來
3.2 查看鏡像
查看鏡像用命令:
~$docker images
我們先前拉取了一個tomcat鏡像,如下圖所示

乍一看528M,一個tomcat有這么大嗎,肯定不是的,這是需要的所有環(huán)境一起的,而且docker是分層的,很多內(nèi)容是可以共享了,第一個可能大一些,后續(xù)如果有其他的相關(guān)內(nèi)容,鏡像就會小很多
幾個參數(shù)從前到后一次是鏡像的名稱,版本,鏡像id,創(chuàng)建時間和鏡像的大小,docker的鏡像更新的速度非常快,所以看到這個tomcat的鏡像是九天前的,這是最新版本,那么怎么查看具體的版本了,我們可以這個命令:

Docker image inspect 是查看鏡像的詳細信息,然后篩選出版本的信息,我們可以看到這兒的tomcat的版本是8.5.53
3.3 運行鏡像
命令:docker run -it tomcat -p 8080:8080 -d bash

解釋一個這幾參數(shù)是什么意思:
run是執(zhí)行鏡像的意思
-it以交互式的方式執(zhí)行,也就是我們可以看到的執(zhí)行的過程
-p是映射端口,將主機的8080與容器里面的8080端口映射,訪問主機的8080實際上就會訪問容器里面的內(nèi)容
-d以守護線程的方式執(zhí)行
bash是指定交互的方式,我們可以看到,運行容器后,進入到容器里面了
以run的方式運行,交互性界面退出,容器也跟著退出了,可以用:
docker exec -it container-id bash,這種方式在后臺運行,在測試的時候方便很多
3.4 查看運行的容器
命令:docker ps -a

在這兒我執(zhí)行了三次上面的命令所以有三個容器在運行,從前到后的意思是:
容器id,鏡像以及端口的映射關(guān)系,名稱,創(chuàng)建時間,容器的狀態(tài)
名稱可以在運行容器時指定,用--name,
幾種狀態(tài)要知道:創(chuàng)建、運行、暫停、停止、退出
3.5容器的暫停/停止/
暫停命令:docker pause container-id
停止命令:docker stop container-id

運行之后的狀態(tài)變了,stop就是已經(jīng)退出了
3.6容器的啟動與重啟
啟動命令:docker start container-id
重啟命令:docker restart container-id
3.7 容器的移除
刪除命令: docker rm container-id
強制殺死:docker kill container-id
3.8清理未運行的容器
清理命令:docker container prune
3.8 docker 鏡像的移除
移除命令:docker rmi image-id
根據(jù)鏡像id移除,也支持批量化的移除方式
4. 自定義鏡像:用Dockerfile制作tomcat鏡像
我們目標(biāo)很簡單,創(chuàng)建一個tomcat鏡像,創(chuàng)建一個1.txt文件,寫一個hello world在里面,然后將鏡像運行起來,訪問頁面,能夠顯示hello world
4.1 創(chuàng)建一個鏡像目錄,mkdirs /usr/local/images/tomcat
4.2 創(chuàng)建一個txt文件,寫入helloworld
touch 1.txt
echo “hello world” >> 1.txt
4.3 創(chuàng)建Dockerfile文件,這個名字必須的,而且是必須這個文件,然后寫入
touch Dockerfile
chmod +x Dockerfile
4.4 在Dockerfile中寫入構(gòu)建腳本

4.5 構(gòu)建鏡像
Docker build -t mowen/tomcat .
4.6 運行鏡像
Docker run -d -it -p 8080:8080 mowe/tomcat
4.7 在瀏覽器輸入ip:port/1.txt訪問,是否能夠顯示hello world, 這樣我們成功創(chuàng)建一個可以運行的鏡像
5. 總結(jié)
在此docker的基本使用已經(jīng)講解完,對于已經(jīng)熟練的開發(fā)人員,學(xué)習(xí)起來很快,一天可以入門完成這些東西