二、例項安裝
docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面,更重要的是容器效能開銷極低。
乙個完整的docker有以下幾個部分組成:
docker 使用客戶端-伺服器 (c/s) 架構模式,使用遠端api來管理和建立docker容器。
docker與虛擬機器
首先,需要明白一點,docker不是不是虛擬機器,docker與虛擬機器有著不同的應用場景,docker常常用於隔離不同應用,提供不同應用執行環境。虛擬機器更擅長於徹底隔離整個執行環境。例如,雲服務提供商通常採用虛擬機器技術隔離不同的使用者。
安裝 這裡只簡單的介紹在ubuntu下的安裝,docker要求ubuntu系統的核心版本高於3.10,使用uname -r 可以檢視當前核心版本。
現在的apt,apt-get已經比較強大了,使用apt-get install docker.io
即可安裝。
常用命令
docker -v #檢視版本資訊
docker #檢視所有命令選項
docker 命令 --help #檢視命令的詳細資訊
hello world
docker run ubuntu:15.10 /bin/echo "hello world"
#/bin/echo "hello world":shell語句
映象類似於物件導向程式設計中的類,也和作業系統的映象檔案類似,是用來建立容器的模板。
映象的使用
我的理解是乙個執行中的映象即為乙個容器,乙個映象可以執行不同的應用,從而構成不同容器,容器不用像作業系統一樣需要安裝。
啟動乙個容器
docker run [options] image [command] [arg...]
[options]:引數可選,可以指定後台執行,預設是不指定後台執行
image:指定執行容器的映象檔案
[command]:需要執行的任務
eg:#1. 直接執行不指定引數,結果會直接輸出
docker run ubuntu:15.10 /bin/echo "hello world"
#2. 後台執行,-d:指定後台執行
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
#3.啟動互動式容器,與遠端登入了一台作業系統類似
docker run -i -t ubuntu:15.10 /bin/bash
一般採用埠對映,在建立時指定
docker run -d -p 5000:5000 ...
#說明:
-p:指定對映關係,如果不指定一般會隨機對映,使用docker ps可以檢視
例:0.0.0.0:32768->5000/tcp 將本機的容器的5000埠對映為主機的0.0.0.0:32768埠
完整格式為:
-p [ip:]port:port[/tcp/udp]
埠對映並不是唯一把 docker 連線到另乙個容器的方法,docker 有乙個連線系統允許將多個容器連線在一起,共享連線資訊。docker 連線會建立乙個父子關係,其中父容器可以看到子容器的資訊。這裡不再做介紹。
顯像管理
docker images #檢視本地所有映象
docker rmi [options] image [image...] #刪除乙個或多個映象
-f :強制刪除;
--no-prune :不移除該映象的過程映象,預設移除;
docker build [options] path | url | - #用於使用 dockerfile 建立映象。
-t:建立的映象名字及標籤
-f:dockerfile檔案路徑預設為當前路徑
. :不明所以,必須有,
docker pull [options] name[:tag|@digest] #獲取映象
docker login -u ... -p ... #登入
docker push [options] name[:tag] #上傳到映象倉庫,需要先登入
docker logout #退出登入
docker search [options] term #查詢
容器相關
docker run [options] image [command] [arg...] #建立乙個容器
-v $pwd/logs:/wwwlogs:檔案對映,將主機中當前目錄下的logs掛載到容器的/wwwlogs
docker ps : 列出容器
docker start :啟動乙個或多個已經被停止的容器
docker stop :停止乙個執行中的容器
docker restart :重啟容器
docker kill [options] container [container...] #殺死乙個執行中的容器
docker logs [options] container
例項安裝一遍即映象的獲取,可以使用pull獲取也可以自定義建立,自定義建立這裡不做介紹。
獲取
docker pull nginx #獲取
docker images nginx #檢視
使用
docker run -p 80:80 --name mynginx -v $pwd/www:/www -v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf -v $pwd/logs:/wwwlogs -d nginx
說明:-p 80:80:將容器的80埠對映到主機的80埠
--name mynginx:將容器命名為mynginx
-v $pwd/www:/www:將主機中當前目錄下的www掛載到容器的/www
-v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf:將主機中當前目錄下的nginx.conf掛載到容器的/etc/nginx/nginx.conf
-v $pwd/logs:/wwwlogs:將主機中當前目錄下的logs掛載到容器的/wwwlogs
docker pull php #安裝php
docker pull mysql #安裝mysql
docker pull tomcat
docker pull python:3.5
...
使用總結:
–name:重新命名
-p:埠對映
-v:檔案對映
Docker 的簡單使用
例如,我們需要拉取乙個 docker 映象,我們可以用如下命令 docker pull image name 接著我們如果想檢視主機下存在多少映象,我們可以用如下命令 docker images 我們要想知道當前有哪些容器在執行,我們可以用如下命令 docker ps a a 是檢視當前所有的容器,...
簡單的使用docker
啟動容器 service docker start顯示容器內容 docker ps a root localhost docker ps a container id image command created status ports names 119c5b3d479c centos usr s...
Docker的簡單使用
第一步 安裝所需的包 下面命令直接整段複製 sudo yum install y yum utils lvm2 第二步 設定穩定的repo 下面命令直接整段複製 sudo yum config manager add repo 第三步 安裝最新版本的docker ce ce是社群免費版 sudo y...