Docker實例教程[超詳細](一)


Docker

     Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

Windows

1、 安裝docker到我們的電腦,下載地址:

http://7xawqb.com2.z0.glb.qiniucdn.com/docker/toolbox/releases/download/v1.11.2/DockerToolbox-1.11.2.exe

clip_image001

clip_image002

Git工具以前有安裝的話,現在就勾去不裝。

clip_image003

clip_image004

點擊install安裝

2、 下載完畢之后我們安裝好 然后在桌面上會有一個Docker Quickstart Terminal的快捷方式clip_image005,我們雙擊打開,如果打不開我們右鍵修改下git地址,這里配置正確的路徑。

clip_image006

打開之后就是這個樣子的:

clip_image008

這個窗口不能shift+insert鍵進行粘貼操作,我不太喜歡這樣玩,我喜歡直接打開git-bash,

clip_image009

輸入命令:

docker-machine ssh default

 

回車進入docker shell.

clip_image011

clip_image013

我們敲個命令試試docker images 顯示所有鏡像

clip_image015

ok 鏡像全部顯示出來了 docker安裝這個還是沒有什么問題的,至此docker安裝完畢。

3、 為了我們能快速拉取docker鏡像,我們選擇https://account.daocloud.io/signin

國內鏡像,用dao命令,這里需要到daocloud.io注冊一個賬號

clip_image017

還可以用github 微信賬號關聯登陸:

clip_image018

我已經注冊好了,我就直接登陸進去了,登陸之后我們看到首頁:

clip_image020

我們點擊加速器:

clip_image022

我們點擊立即開始:

clip_image024

跳到了我的集群,其實也可以在主界面直接進去到集群里面的,我們選擇windows:

clip_image026

前面兩步我們已經執行完畢了,我們直接選擇安裝好了,跳出如下界面,拷貝代碼到我們的命令行下執行,我們打開git-bash執行

docker-machine ssh default

,緊接着拷貝下面的代碼,每個人的都不一樣,注意區別。

clip_image028

執行完畢后,我們就能運行dao命令了,我們打個dao試試。

clip_image030

緊接着我們到我們的daocloud.io里面進入到鏡像倉庫里面,daocloud(這個列別里面的鏡像就在daocloud服務器,很快!)鏡像搜索centos,我們點擊進去:

clip_image032

clip_image033

看到下面鏡像拉取說明,我們拉一下centos7,我們把命令改寫成

dao pull daocloud.io/centos:7

,這樣比較快。

clip_image035

正在多線程拉取拉取!拉取完畢。

clip_image037

我們docker images看看是否拉取成功了。

clip_image039

我們啟動容器shell交互,為了簡單演示,下面使用yun install 方式搭建一個簡單的nginx環境。

我們運行命令:

docker run –i t –name nginx_test[這個名字可以隨便起] 904d6c400333[IMAGE ID] /bin/bash

 回車

clip_image040

進入到我們的centos容器,我們可以在這個里面搭建docker,搭建完畢之后,通過Dockerfile來build一個鏡像,也可以一次性寫一個Dockerfile,我們下面采用一次性編寫Dockerfile的方式進行。

新建Dockerfile文件,寫入如下內容:

FROM daocloud.io/centos:7

# Install Nginx.
# WORKDIR /etc/yum.repos.d/
ADD  nginx.repo /etc/yum.repos.d/
RUN \
   yum update -y && \
   yum install -y wget && \
#   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
   wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
   yum makecache && \
   yum update -y && \
   yum install -y vim && \
   yum install -y nginx && \
   yum install -y net-tools && \
   echo "daemon off;" >> /etc/nginx/nginx.conf && \
   echo "master_process  off;" >> /etc/nginx/nginx.conf
   # Define mountable directories.
   VOLUME ["/usr/share/nginx", "/etc/nginx/conf.d", "/var/log/nginx"]
   # Define working directory.
   WORKDIR /etc/nginx
   # Define default command.
   CMD ["/usr/sbin/nginx"]
   # Expose ports.
   EXPOSE 80
   EXPOSE 443

 

編寫nginx.repo文件:

# nginx.repo
[nginx]

name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 

運行如下命令:

docker build -t nginx:v1 .

clip_image042

clip_image044

打包完成,我們下面運行{docker images}看看鏡像有沒有生成:

clip_image046

生成好了!

docker run -d -p 8090:80 nginx:v1

clip_image048

端口也是綁定成功的。

clip_image050

打開瀏覽器 輸入192.168.99.100:8090,看看是否打開了nginx的頁面:

clip_image052

因為宿主ip是一個虛擬網卡上的ip所以要通過此ip訪問,可以ifconfig查看宿主ip。

我們也可以靜態網頁為宿主內的地址:

在此之前先停止掉之前的容器,docker ps 查看正在運行的docker,然后docker stop container id。

clip_image054

再次運行命令:

docker run -d -p 8090:80 -v /logs:/var/log/nginx -v /www:/usr/share/nginx nginx:v1

clip_image055

編寫內容

clip_image056

瀏覽器訪問:

clip_image057

至此 docker教程完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM