Docker初體驗
? Docker 是一個開源的基于 LXC 的高級應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。(不會總結,但是覺得百度說的蠻好);
? 綜合以上概念,我們可以看出docker是一個應用容器的引擎,其中關鍵詞有兩個,應用容器,引擎,引擎自不必說,最為關鍵的是應用容器,也就是說docker為應用程序的運行提供獨立的容器,而且該容器還可以移植,想想都覺的美爆了,應用程序可以移植,如何移植呢,我的想法是通過將應用程序打包build成對應的image(鏡像),通過docker平臺鏡像的隨處運行來實現應用程序的移植,關于理論部分就說這么多,i am still learning ,來一波實踐;
? 關于docker的安裝,方法眾多,因為docker是在Linux平臺下面開發出來的,所以即使他提供了MAC,Linux,Windows下的相關client,Linux平臺也是最佳的,下面說說如何在centos7上面安裝docker:
1、root賬戶登錄;
2、yum -y install docker(或者普通用戶登錄 sudo yum -y install docker)
ok!
其他linux 平臺參見次安裝
安裝成功后首先要做的便是啟動docker服務:
service docker start(systemctl start docker)
查看docker版本:
docker -v
Docker version 1.12.6, build 88a4867/1.12.6
從倉庫拉取第一個docker的demo;
docker pull hello-world
以下便是docker從遠端獲取鏡像過程的詳解:
docker在拉取鏡像之前,先檢查本地倉庫是否有該鏡像,有的話直接使用,沒有的話從遠端服務器拉取;docker run用來運行docker images,在運行之前需要先獲取docker 鏡像,若本地(實則是本地的服務端,Linux上面client,與server都在一臺機子上面,所以叫本地)存在,直接運行本地實例,不存在來去遠端實例;
docker 鏡像倉庫在國外架設,因此下載起來可能需要某些特殊手段,好在網易給我們提供了很多的常用的鏡像
網址參見:http:/c.163.com
docker images 用于查看現有images
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/tomcat latest b226d7ee3462 31 hours ago 292.4 MB
docker.io/hello-world latest 1815c82652c0 7 weeks ago 1.84 kB
hub.c.163.com/library/nginx latest 46102226f2fd 3 months ago 109.4 MB
現在開始運行第一個docker 程序:
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
此過程描述運行了一個docker的實例,而且描述了,此過程經過的四個步驟(可自己參閱);
hello-world只是簡單的命令行輸出而已,現在我們需要在docker中運行一個Nginx服務,步驟如下:
1、下載鏡像(登錄網易蜂巢->鏡像倉庫->發現更多鏡像-搜索nginx-復制右上角下載地址下載鏡像)
docker pull hub.c.163.com/library/nginx:latest
2、docker images 查看下載好的鏡像名稱
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/tomcat latest b226d7ee3462 31 hours ago 292.4 MB
docker.io/hello-world latest 1815c82652c0 7 weeks ago 1.84 kB
hub.c.163.com/library/nginx latest 46102226f2fd 3 months ago 109.4 MB
3、運行鏡像(由于nginx隸屬服務器類型,需要提供不間斷的服務,因此需要將其放置在后臺運行)
docker run -d -p 8080:80 hub.c.163.com/library/nginx
d84e097906770e5fb5911aaee6adce7654b08034a1831c084c40a900c723227e
釋義:docker run 用來運行鏡像 hub.c.163.com/library/nginx 為容器名稱,-d 是將docker運行實例放在后臺運行,-p 是將docker 容器內端口與本機斷后做映射,前者是本機端口,后者是容器內的端口
命令運行后返回的是容器的id(所謂容器就是指鏡像運行的一次實例,.可以包含一個獨立的操作系統)
4、查看是否運行成功:
在本地瀏覽器輸入如:http://localhost:8080 看是否會有nginx works
5、docker ps 查看現在運行的容器有哪些
6、docker exec -it 容器id進入容器 /bin/bash
至此dcoker 運行nginx結束
學習中·······