007/Docker(一)

Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用接口。html

Docker 將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器裏運行,就好像在真實的物理機上運行同樣。有了 Docker,就不用擔憂環境問題。mysql

Gitbook教程從入門到實踐linux

Docker菜鳥教程nginx

阮一峯日誌:Docker入門教程git

阮一峯日誌:Docker微服務教程github

Docker官方文檔sql

Docker入門(Mooc)docker

第一個Docker化的Java應用(Mooc)ubuntu

Docker環境下的先後端分離項目部署與運維(Mooc)後端

Docker+k8s微服務容器化實踐(Mooc)

系統學習Docker,踐行DevOps理念(Mooc)

openstack最新技術解析(Mooc)

一。Mooc--Docker基礎

1。Docker架構以下所示:

 

2。Docker經常使用命令

1.查看有哪些鏡像
$ docker images

2.運行docker
$ docker run ubuntu echo hello docker //ubuntu爲images的名字
//上述作的事情,用ubuntu這個image,在這裏面運行了echo hello docker這一命令.上述輸出爲hello docker

3.運行nginx服務器
$ docker run nginx  //運行nginx這個image
//說明:docker在運行容器以前先看本地是否有所須要容器運行的image,若是沒有則從遠端registry下載

4。查看本地有哪些image
$ docker images
5.執行命令
$ docker run -p 8080:80 -d daocloud.io/nginx  //返回docker的container的ID
//說明:p是作端口映射,將nginx的80端口映射到本地8080端口; -d是容許這個程序直接返回,即把這個container作爲守護進程來執行

6.查看全部當前正在運行的docker的container
$ docker ps
//說明:可查看運行的docker的container以及端口之間的映射關係

 說明在本地8080端口開啓了一個nginx服務,地址欄訪問驗證:localhost:8080

上述以在本地開啓了一個nginx服務,但願這個頁面呈現docker相關信息。實現步驟:

【1】。建立一個index.html文件,並加入內容

【2】。ubuntu安裝nginx

7。安裝nginx
$ sudo apt-get install nginx
//nginx目錄位置:/usr/share/nginx
8.啓動nginx
/etc/init.d/nginx start

【3】。將index.html文件拷備到容器中

//9.拷備index.html文件到容器中
docker cp index.html 容器ID://usr/share/nginx/html

//容器ID查詢方式:正在運行的容器
docker ps
10.中止docker
$ docker stop 容器ID
//容器ID經過docker ps查詢

瀏覽器訪問:localhost:8080

 

11.查看正在運行的容器
$ docker ps

12.查看全部容器
$ docker ps -a
//12.中止某個運行的的容器

$ docker ps
$ docker stop 容器ID

//13。移除某個容器

$ docker ps -a
$ docker rm 容器ID1 容器ID2

經常使用命令小結

第3章:Dockerfile介紹

3。dockerfile(地址

【1】。經過編寫簡單的文件自創docker鏡像

上節應用docker commit建立了一個新的image

1.查看運行的容器
$ docker ps

2.建立一個新的鏡像image
$ docker commit -m  'fun' 容器ID 鏡像名字

第一個dockerfile

上述成功用dockerfile形式構建了本身的image.能夠image中運行容器執行命令行。

【2】dockerfile實戰

【1】基礎鏡像 【2】做者

【3】運行命令:

run apt-get upate //更新ubuntu的庫

run apt-get install -y nginx //安裝nginx,-y不要詢問

COPY //複製文件

ENTRYPOINT //入口,目的將nginx在前臺執行而不是作爲守護進程執行.[ , ,] 會給拆分紅一條命令

EXPOSE //暴露端口

1.建立一個目錄
$ mkdir dockerfile2

2.建立文件(注意:該Dockerfile文件名不能爲其餘,只能爲Dockerfile)
$ touch Dockerfile

$ vi Dockerfile

3。建立index.html
$ touch index.html

//編輯文件
vi index.html

//向其中添加內容today is very good
4.構建鏡像
$ docker build -t xbf/hello-nginx .

//構建完成

5.運行鏡像 
$ docker run -d -p 8089:80 xbf/hello-nginx 
//將80端口映射到本地8089
6.查看運行的鏡像
$ docker ps

7.查看返回結果
$ curl http://localhost:8089

Dockerfile語法

鏡像是分層被存儲

下述爲一個已經存在的image鏡像,下述三層爲只讀的。當image被運行爲容器,則會產生新的一層,最上層爲容器層,可讀可寫。

爲何要分層:存儲能夠共享,存儲壓力小。

Volumn:提供獨立於容器以外的持久化存儲

可提供容器與容器之間共享的數據

第4章:存儲

Volumn操做:

1。運行一個nginx容器,經過-v掛載一個卷

2。本地一個目錄,掛載到容器數據卷中

第5章:鏡像倉庫

registry:鏡像倉庫(saas的服務)

術語:

【1】host:宿主機(正在使用的這臺電腦)

【2】鏡像:可多遠端拉取的或本地程序構建的一些可重複使用的軟件打包

【3】容器:是鏡像運行的實際

【4】倉庫:不少鏡像註冊的倉庫

【5】守護程序:docker守護進程用來和registry共享,用來接受用戶的命令

【6】客戶端:用來給守護程序輸送命令以及進行操做

國內一些倉庫:daocloud /時速雲 /aliyun

registry實戰

第6章:多容器app

上述講述的均爲單容器app應用,本意爲利用docker-compose工具拉起一個多容器app應用

1.docker-compose

【1】docker-compose安裝

        compose爲獨立軟件,因此須要單獨安裝。

1.安裝docker-compose
$curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2.查看docker-compose
$ ls -l /usr/local/bin/docker-compose

3.查看docker-compose版本
$ docker-compose --version

4.設置全部用戶可用
$ chmod a+x /usr/local/bin/docker-compose

【2】docker-compose實戰(docker-compose三層架構)

nginx:接入層 /ghost app:業務層 / mysql:數據層

【3】docker-compose.yml經常使用命令

docker-compose命令

小結

  

相關文章
相關標籤/搜索