在腦海中構思一張邏輯圖:
容器 Container
鏡像:image
倉庫;Repository:
私有倉庫:registry
docker文件:Dockerfilehtml
以image爲中心:
1.docker pull 《鏡像名》 從鏡像倉庫拉取鏡像,(不指定版本,默認拉取latest標籤的)
2.docker push 《鏡像名》從本地的鏡像上傳到鏡像倉庫
3.docker save -o <鏡像包.tar> 《鏡像》把鏡像導出到本地(在本地查看) -o 等於 output -o 大於 >
4.docker load -i <鏡像包.tar> 根據本地鏡像包導入鏡像 -i 小於 <
5.docker run -itd --name 《容器名》 《鏡像》 把鏡像製做成容器
6.docker commit 《鏡像名》 《容器》把容器製做成鏡像
![]
1.docker search 《查找的鏡像名 》 查找鏡像
2.docker images查看鏡像
3.查看正在運行的容器: docker ps
4.查看全部容器加-a: docker ps -a
5.刪除鏡像:docker rmi <鏡像名>
6.刪除容器:docker rm <容器名>
能夠根據前面的id號,或者他的名進行刪除。
強制刪除(加-f)
docker rm test -f
若是刪除鏡像只刪除名稱的話,是不影響容器的運行的,由於鏡像根本沒有被刪除。Docker中有緩存機制。nginx
強制刪除(開啓,關閉)全部容器(生產環境嚴禁使用)
docker ps -a -q | xargs docker rm -f
(start,stop)
開啓,關閉web
中止容器運行
docker stop test
啓動容器
docker start testdocker
運行一個容器 docker run -it --name test2 busybox:latest -i:可交互 -t:僞終端 -d:後臺運行 --name:給容器命名 - -restart=always:始終保持運行,(隨着docker開啓而運行)老是正在運行 進入一個容器 docker exec -it test2 /bin/sh docker attach test5 操作區別:exec進入方式須要添加-i -t選項,後面還須要給容器一個shell環境 但attach就不須要這麼麻煩。 Exec進入方式:若是執行exit退出,容器仍然保持運行。 Attach:若是執行exit退出,容器會關閉。若是想要保持容器不被關閉,能夠使用鍵盤,c t r l+p c t r l+q能夠實現。 本質上的區別:exec進入的方法,會產生新的進程 attach不會生產新的進程。
基於上述知識,測試實驗:
1)基於Centos:7 鏡像運行一個容器,而且,在這個容器內部署Nginx服務
將鏡像製做爲tar包
docker save -o centos.tar centos:7
查看鏡像
docker images
導入nginx包
docker run -itd --name lbs --restart=always centos:7
docker cp nginx-1.14.0.tar.gz lbs:/rootshell
進入容器lbs
docker exec -it lbs /bin/bash
安裝依賴和容器須要的編譯服務
yum -y install gcc pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum -y install make
建立一個用戶但不給他編譯安裝的權限
useradd -M -s /sbin/nologin nginx
解壓nginx
tar zxf nginx-1.14.0.tar.gz
進入編譯安裝目錄
cd nginx-1.14.0
編譯安裝
./configure --prefix=/usr/local/nginx --user=nginx --group=nignx
make && make install
連接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
啓動
nginx
進入html目錄
cd /usr/local/nginx/html/
Echo進入文字
echo lbs6666666666666 > index.html
centos
查看有那個軟件,或命令支持後面的命令
yum provides ip
安裝支持網絡的服務
yum -y install net-tools
訪問本地ip nginx的web服務
curl 172.17.0.2
緩存
2)將運行完成的容器,製做成一個鏡像,而後再根據此鏡像運行一個容器,保證兩個容器的主頁面內容是同樣的。
把容器製做成鏡像(可移植)
docker commit lbs lbs:12-10
查看鏡像
Docker images
用剛建立的鏡像,建立容器lbs12並進入
docker run -it --name lbs12 lbs:12-10
啓動nginx服務
Nginx
訪問本地ip
bash
3)將此鏡像導出到docker02上,在docker02上根據此鏡像運行一個容器,測試訪問界面內容。
將剛建立的鏡像製做爲tar包
docker save -o lbs.tar lbs:12-10
導入到第二臺docker
scp lbs.tar root@192.168.1.20:/root
網絡
根據本地鏡像包導入鏡像
docker load -i lbs.tar
查看鏡像
Docker images
建立名爲lbs的容器並進入
docker run -it --name lbs lbs:12-10
啓動nginix
nginx
Ifconfig
訪問本地nginx web服務
注意:根據dockerfile也可生成鏡像
將鏡像導入到第二臺docker虛擬機,也能夠建立私有倉庫。curl