1. 程式人生 > >docker相關實驗

docker相關實驗

相互 標準輸入 dock 輸入 exec 2-0 ner car roc

docker

一、安裝部署

[root@foundation12 ~]#yum install -y docker-engine-1.13.1-1.el7.centos.x86_64.rpm docker-engine-selinux-1.13.1-1.el7.centos.noarch.rpm

[root@foundation12 ~]# systemctl start docker 開啟服務

技術分享圖片

[root@foundation12 ~]# docker version 查看docker版本

技術分享圖片


容器管理命令

# docker run -it --name vm1 ubuntu bash 創建容器

# docker ps -a 查看容器狀態(列出所有)

# docker ps 查看容器狀態(列出運行的)

# docker attach vm1 連接容器
# docker top vm1 查看容器進程

# docker logs vm1 查看容器指令輸出 -f 參數可以實時查看

# docker inspect vm1 查看容器詳情
# docker stats vm1 查看容器資源使用率
# docker diff vm1 查看容器修改

# docker run -d --name vm1 ubuntu bash -c "while true; do echo westos; sleep 1; done" 後臺運行
# docker stop vm1 停止容器
# docker start vm1 啟動容器

# docker kill vm1 強制幹掉容器
# docker restart vm1 重啟容器
# docker pause/unpause vm1 暫停/恢復容器
# docker rm vm1 刪除容器

# docker export vm1 > vm1.tar 導出容器
# docker import vm1.tar image 導入容器為鏡像 image


技術分享圖片

鏡像管理

# docker search 查詢鏡像
# docker pull 拉取鏡像
# docker push 推送鏡像


二、拉取鏡像,啟動容器

[root@foundation12 ~]# docker search ubuntu

技術分享圖片[root@foundation12 ~]# docker pull ubuntu
技術分享圖片


(一)game的相關測試

[root@foundation12 docker]# docker load -i game2048.tar 導入

技術分享圖片


[root@foundation12 ~]# docker images 列出鏡像


技術分享圖片



啟動容器

[root@foundation12 docker]# docker run -d --name game game2048

技術分享圖片


[root@foundation12 docker]# docker inspect game 查看詳情,可以列出IP等信息


技術分享圖片

技術分享圖片

訪問:

技術分享圖片



看正在運行的情況

技術分享圖片


停止容器,並刪除

[root@foundation12 docker]# docker kill game
[root@foundation12 docker]# docker rm game



做端口轉發,物理機IP訪問

[root@foundation12 ~]# docker run -d --name game -p 8000:80 game2048

技術分享圖片


技術分享圖片

技術分享圖片

物理機,IP端口訪問

技術分享圖片


(二)ubuntu的相關測試


導入ubuntu.tar鏡像

技術分享圖片


[root@foundation12 docker]# docker run --name vm1 -it ubuntu 創建容器-name 別名 -it 獲取交互式shell

-t 選項讓Docker分配一個偽終端(pseudo-tty)並綁定到容器的標準輸入上, -i 則讓容器的標準輸入保持打開。

技術分享圖片

物理機能做的,容器都能做

技術分享圖片


Ctrl + q + p 退出(進程還在) ctrl + d (進程stop)

查看容器進程

技術分享圖片

[root@foundation12 docker]# docker attach vm1 重新調用

容器與物理機共享內核,將主機的文件掛載到容器



在物理機查看IP和橋接器情況

技術分享圖片

技術分享圖片


Docker 在啟動時會創建一個虛擬網橋 docker0,默認地址為 172.17.42.1/16, 容器啟動後都會被橋接到 docker0 上,並自動分配到一個 IP 地址。

docker0 不是普通的網卡,他是橋接到其他網卡的虛擬網卡,容器使用它來和主機相互通信。當創建一個docker容器的時候,它就創建了一個對接口,當數據包發送到一個接口時,另外一個接口也可以收到相同的數據包,它們是綁在一起的一對孿生接口。這對接口在容器中那一端的的名字是eth0,宿主主機端的會指定一個唯一的名字,比如vethAQI2QT這樣的名字,這種接口名字不再主機的命名空間中。所有的veth*的接口都會橋接到docker0,這樣docker就創建了在主機和所有容器之間一個虛擬共享網絡。

技術分享圖片


創建一個容器,並修改,建立file

技術分享圖片


[root@foundation12 docker]# docker exec vm1 ls 通過exec可以在容器外,對容器進行操作

技術分享圖片


[root@foundation12 docker]# docker diff vm1 查看容器修改

技術分享圖片


[root@foundation12 docker]# docker logs vm1 查看容器指令輸出 -f 參數可以實時查看

技術分享圖片


[root@foundation12 docker]# docker history ubuntu

技術分享圖片


(三)nginx的相關測試


技術分享圖片


技術分享圖片

[root@foundation12 docker]# docker run -d --name web nginx 啟動

技術分享圖片


[root@foundation12 docker]# docker inspect web 查看容器詳情
技術分享圖片

訪問

技術分享圖片

容器端口映射:

[root@foundation12 docker]# docker run -d --name vm2 -p 8000:80 nginx 做端口轉發

技術分享圖片

技術分享圖片

在物理機寫頁面

技術分享圖片

[root@foundation12 docker]# docker container cp cara.html vm2:/usr/share/nginx/html 將頁面拷貝到容器

技術分享圖片




docker相關實驗