一嘉冒、docker基本概念
docker
是由google
公司推出的go
語言進行開發(fā)實現(xiàn)的削葱,基于Linux
內核辛润,隔離的進程獨立于宿主和其他的隔離進程膨处,即成為容器。
與虛擬機的區(qū)別:
虛擬機是虛擬一套硬件后砂竖,在其上運行一個完整操作系統(tǒng),會獨占一部分內存鹃答。然后在該系統(tǒng)上再運行所需應用進程乎澄;
容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核测摔,而且也不需要進行硬件虛擬置济,占用的資源少,體積蟹姘恕浙于;啟動容器相當于啟動本機的一個進程,速度上就會快很多挟纱。
三個基本概念:
-
鏡像(image)
可以看成是一個只讀的模板羞酗,可以被重復使用多次,每個鏡像都可以包含一個簡易的Linux操作系統(tǒng)紊服。
鏡像是用來創(chuàng)建容器的檀轨。鏡像相當于對象中的類,而容器為實例欺嗤。
容器(container)
容器是由鏡像創(chuàng)建的運行實例参萄,容器是由一個簡易的Linux操作系統(tǒng)和運行在其中的應用程序組成的倉庫
集中存放鏡像的場所,分為公有和私有的倉庫煎饼,可以將自己的鏡像push到倉庫讹挎,要用的時候pull下來
二、docker的常用命令
(1)鏡像
- 查看鏡像
docker images
- 獲取鏡像
docker pull xxx
docker pull nginx
docker pull registry.hub.docker.com/nginx //可以指定倉庫
(2)容器
- 查看運行中的容器
docker ps
container_id: 容器的標識id吆玖, names: 容器的名稱
- 查看所有包含終止運行的容器
docker ps -a
- 運行容器
docker run -d --rm --name myNginx -p 8080:80 nginx
使用run時筒溃,每執(zhí)行一次,就會新建一個容器衰伯,如果想運行已有的铡羡,則可以改為
docker run myNginx
參數(shù)說明:(參數(shù)可選)
-d 后臺運行
--rm 在容器停止運行之后自動刪除容器文件
--name 設置名字,這樣做的好處就是可以直接指定名字操作容器意鲸,不一定用ID
-p 映射宿主和容器內的網(wǎng)絡烦周,假設有8080:80尽爆,即外面使用8080端口映射內部的80端口
- 進入容器的bash
docker exec -it myNginx bash
參數(shù)說明:
exec 當?shù)谝淮问褂胷un的時候,還未進行一些操作读慎,就可以使用這個
-it .... bash 進入容器漱贱,可以在容器操作shell命令
- 只執(zhí)行一次容器內的shell命令
docker exec myNginx cat /etc/nginx/conf.d/default.conf
此命令為在宿主查看容器內
nginx
的配置文件內容
- 將宿主的文件掛載到容器內
docker exec -v /dist:/usr/share/nginx/html/ myNginx
-v 掛載
將當前目錄下的dist文件掛載到容器路徑/usr/share/nginx/html/下
- 生成容器
(1)使用Dockerfile文件創(chuàng)建的方式
docker build -t my:1.0.0 .
(2)使用命令
docker commit myNginx test/my:1.0.0
- 發(fā)布鏡像
push到私有docker hub倉庫
docker build -t my .
docker login(先登錄)
docker tag my username/my:1.0.0
docker push username/map:1.0.0