做電子商務(wù)網(wǎng)站需要學(xué)什么2024年3月新冠高峰
首先說下容器:
它是指當(dāng)docker運(yùn)行鏡像時(shí),創(chuàng)建了一個(gè)隔離環(huán)境,稱之為 容器。?
這種方式優(yōu)點(diǎn):可以開啟多個(gè)服務(wù),服務(wù)之前是互相隔離的(比如:在一臺(tái)服務(wù)器上可以開啟多個(gè)mysql,可以是多個(gè)不同版本或者多個(gè)相同版本,這樣如果多個(gè)項(xiàng)目依賴不同mysql版本,也可以部署在同一臺(tái)服務(wù)器上)。
1、創(chuàng)建并運(yùn)行一個(gè)容器
此命令會(huì)檢查鏡像是否存在,不存在會(huì)先遠(yuǎn)程下載,下載完之后,運(yùn)行。
docker run -d --name 自定義容器名稱 -p 外網(wǎng)訪問的端口:實(shí)際端口 運(yùn)行鏡像的名字
?解釋:
-d:后臺(tái)運(yùn)行;
--name: 給容器起一個(gè)名字,需要唯一;
-p 外網(wǎng)訪問端口:容器實(shí)際的端口?
運(yùn)行鏡像名稱:鏡像名稱一般由:[repository]:[tag]組成,其中repository就是鏡像名稱,tag是鏡像版本號(hào)(可以通過 docker images來查下某個(gè)鏡像名稱及tag)。
2、重啟、停止容器進(jìn)程
// 啟動(dòng)容器進(jìn)程,注意與run的區(qū)別
docker start 容器id
// 重啟容器進(jìn)程
docker restart 容器id
// 停止當(dāng)前正在運(yùn)行的容器進(jìn)程
docker stop 容器id
// 強(qiáng)制停止當(dāng)前容器進(jìn)程
docker kill 容器id
注:
(1)docker stop 是指停止容器進(jìn)程,容器還在!不是把容器給刪除掉了!
(2)docker run xxx 是指創(chuàng)建一個(gè)容器,而且每次run 都會(huì)創(chuàng)建一個(gè)新容器;
(3)docker start xxx 是指啟動(dòng)已經(jīng)停掉的容器進(jìn)程;
(4)說白了,docker start/stop/restart/kill 這幾個(gè)命令是在docker run xxx 之后才會(huì)有的。
3、查看容器的進(jìn)程狀態(tài)
docker ps
4、刪除容器
// 刪除有一個(gè)容器
docker rm 容器id或者容器名稱// 如果當(dāng)前容器正在運(yùn)行,可以強(qiáng)制刪除
docker rm -f 容器id或者容器名稱// 刪除所有的容器
docker rm -f $(docker ps -aq)
5、一張圖來總結(jié)上邊介紹的命令:?
6、小例子 - 下載nginx
下載、運(yùn)行nginx
// 下載nginx
docker pull nginx// 運(yùn)行nginx
docker run -d --name nginx -p 3782:80
查看鏡像及后臺(tái)運(yùn)行nginx:
在物理機(jī)訪問虛擬機(jī)上docker nginx容器服務(wù):
注意:
外界只能通過3782端口訪問nginx,如果直接通過80端口是訪問不到的!!!
7、進(jìn)入nginx容器中
容器中會(huì)有自己獨(dú)立的文件系統(tǒng),當(dāng)然只是模擬的。
docker exec -it nginx /bin/bash
?解釋:
-it:可交互的終端;
nginx:容器名稱;
/bin/bash:進(jìn)入容器之后使用什么命令進(jìn)行交互(這里使用命令行)。
退出內(nèi)部容器:exit
8、把本地鏡像打包成一個(gè)tar文件
// 鏡像名稱可以使用docker imags來查看
// -o 輸出到哪一個(gè)文件,output
docker save -o 鏡像名稱.tar
9、加載本地tar鏡像包
加載本地tar鏡像包,相當(dāng)于docker pull xxx 下載一個(gè)鏡像,只不過這個(gè)鏡像已經(jīng)下載完了且已經(jīng)打包成一個(gè)tar文件了,現(xiàn)在需要加載到docker 中。
docker load -i xxx.tar
10、打印日志
docker logs 鏡像名稱