Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用接口。html
Docker 將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器裏運行,就好像在真實的物理機上運行同樣。有了 Docker,就不用擔憂環境問題。mysql
Gitbook教程從入門到實踐linux
Docker菜鳥教程nginx
阮一峯日誌:Docker微服務教程github
Docker官方文檔sql
Docker入門(Mooc)docker
第一個Docker化的Java應用(Mooc)ubuntu
Docker環境下的先後端分離項目部署與運維(Mooc)後端
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
經常使用命令小結
【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被運行爲容器,則會產生新的一層,最上層爲容器層,可讀可寫。
爲何要分層:存儲能夠共享,存儲壓力小。
可提供容器與容器之間共享的數據
1。運行一個nginx容器,經過-v掛載一個卷
2。本地一個目錄,掛載到容器數據卷中
術語:
【1】host:宿主機(正在使用的這臺電腦)
【2】鏡像:可多遠端拉取的或本地程序構建的一些可重複使用的軟件打包
【3】容器:是鏡像運行的實際
【4】倉庫:不少鏡像註冊的倉庫
【5】守護程序:docker守護進程用來和registry共享,用來接受用戶的命令
【6】客戶端:用來給守護程序輸送命令以及進行操做
國內一些倉庫:daocloud /時速雲 /aliyun
上述講述的均爲單容器app應用,本意爲利用docker-compose工具拉起一個多容器app應用
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
nginx:接入層 /ghost app:業務層 / mysql:數據層
docker-compose命令