天天看點

docker相關實驗

                                                                           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     開啟服務

docker相關實驗

[root@foundation12 ~]# docker version     檢視docker版本 

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相關實驗

鏡像管理

# docker search            查詢鏡像

# docker pull                拉取鏡像

# docker push            推送鏡像

二、拉取鏡像,啟動容器

[root@foundation12 ~]# docker search ubuntu

docker相關實驗

[root@foundation12 ~]# docker pull ubuntu

docker相關實驗

(一)game的相關測試

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

docker相關實驗

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

docker相關實驗

啟動容器

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

docker相關實驗

[root@foundation12 docker]# docker inspect game          檢視詳情,可以列出IP等資訊

docker相關實驗
docker相關實驗

通路:

docker相關實驗

看正在運作的情況

docker相關實驗

停止容器,并删除

[root@foundation12 docker]# docker kill game

[root@foundation12 docker]# docker rm game

做端口轉發,實體機IP通路

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

docker相關實驗
docker相關實驗
docker相關實驗

實體機,IP端口通路

docker相關實驗

(二)ubuntu的相關測試

導入ubuntu.tar鏡像

docker相關實驗

[root@foundation12 docker]# docker run --name vm1 -it ubuntu   建立容器-name 别名 -it 擷取互動式shell

-t 選項讓Docker配置設定一個僞終端(pseudo-tty)并綁定到容器的标準輸入上, -i 則讓容器的标準輸入保持打開。

docker相關實驗

實體機能做的,容器都能做

docker相關實驗

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

檢視容器程序

docker相關實驗

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

容器與實體機共享核心,将主機的檔案挂載到容器

在實體機檢視IP和橋接器情況

docker相關實驗
docker相關實驗

Docker 在啟動時會建立一個虛拟網橋 docker0,預設位址為 172.17.42.1/16, 容器啟動後都會被橋接到 docker0 上,并自動配置設定到一個 IP 位址。

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

docker相關實驗

建立一個容器,并修改,建立file

docker相關實驗

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

docker相關實驗

[root@foundation12 docker]# docker diff vm1        檢視容器修改

docker相關實驗

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

docker相關實驗

[root@foundation12 docker]# docker history ubuntu  

docker相關實驗

(三)nginx的相關測試

docker相關實驗
docker相關實驗

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

docker相關實驗

[root@foundation12 docker]# docker inspect web  檢視容器詳情

docker相關實驗

通路

docker相關實驗

容器端口映射:

端口映射與火牆的關系如下

docker相關實驗

[root@foundation12 ~]# iptables -nL -t nat

docker相關實驗

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

docker相關實驗
docker相關實驗

在實體機寫頁面

docker相關實驗

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

docker相關實驗

或者如下進行挂載:

docker相關實驗

[root@foundation12 web]# docker run -d --name web -p 80:80 -v /tmp/docker/web/:/usr/share/nginx/html nginx   挂載,進行映射    實體機:容器

docker相關實驗

采用這種方式,修改頁面很友善,當要修改時,在實體機的index.html裡面進行修改即可

docker相關實驗

在浏覽器重新整理

docker相關實驗
docker相關實驗

虛拟主機

[root@foundation12 web]# docker run -it --name vm1 nginx bash   重新啟動一個容器

檢視nginx的配置檔案

docker相關實驗
docker相關實驗

[root@foundation12 docker]# vim vhost.conf   寫檔案

server {

        listen 80;                    指定這個虛拟主機監聽的是80端口

        server_name www.cara.org;        指定這個虛拟主機名為www.cara.org

        charset utf-8;

        location / {                        

                root /website;     指定此虛拟主機的實體根目錄為/website

        }

}

啟動容器(端口映射,邏輯卷映射)

[root@foundation12 docker]# docker run -d --name web -p 80:80 -v /tmp/docker/web/:/website -v /tmp/docker/vhost.conf:/etc/nginx/conf.d/vhost.conf nginx

做好解析

[root@foundation12 docker]# vim /etc/hosts

docker相關實驗

通路域名

docker相關實驗

繼續閱讀