Docker 是一個開源的應用容器引擎,基於 Go 語言 並聽從Apache2.0協議開源。php
Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。html
容器是徹底使用沙箱機制,相互之間不會有任何接口(相似 iPhone 的 app),更重要的是容器性能開銷極低。mysql
Web 應用的自動化打包和發佈。nginx
自動化測試和持續集成、發佈。web
在服務型環境中部署和調整數據庫或其餘的後臺應用。sql
容器和虛擬機具備類似的資源隔離和分配優點,但功能有所不一樣,由於容器虛擬化的是操做系統,而不是硬件,所以容器更容易移植,效率也更高。docker
容器是一個應用層抽象,用於將代碼和依賴資源打包在一塊兒。多個容器能夠在同一臺機器上運行,共享操做系統內核,但各自做爲獨立的進程在用戶空間中運行。與虛擬機相比,容器佔用的空間較少(容器鏡像大小一般只有幾十兆),瞬間就能完成啓動。數據庫
虛擬機 (VM) 是一個物理硬件層抽象,用於將一臺服務器變成多臺服務器。管理程序容許多個 VM 在一臺機器上運行。每一個 VM 都包含一整套操做系統、一個或多個應用、必要的二進制文件和庫資源,所以佔用大量空間。並且 VM 啓動也十分緩慢。ubuntu
目前,CentOS 僅發行版本中的內核支持 Docker。windows
Docker 運行在 CentOS 7 上,要求系統爲64位、系統內核版本爲 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統爲64位、系統內核版本爲 2.6.32-431 或者更高版本。
Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。
經過 uname -r 命令查看你當前的內核版本
[root@runoob ~]# uname -r 3.10.0-327.el7.x86_64
Docker 軟件包和依賴包已經包含在默認的 CentOS-Extras 軟件源裏,安裝命令以下:
[root@runoob ~]# yum -y install docker-io
安裝完成。
啓動 Docker 後臺服務
[root@runoob ~]# service docker start
測試運行 hello-world
[root@runoob ~]#docker run hello-world
因爲本地沒有hello-world這個鏡像,因此會下載一個hello-world的鏡像,並在容器內運行。
一、使用 sudo
或 root
權限登陸 Centos。
二、確保 yum 包更新到最新。
$ sudo yum update
三、執行 Docker 安裝腳本。
$ curl -fsSL https://get.docker.com/ | sh
執行這個腳本會添加 docker.repo
源並安裝 Docker。
四、啓動 Docker 進程。
$ sudo service docker start
五、驗證 docker
是否安裝成功並在容器中執行一個測試的鏡像。
$ sudo docker run hello-world
到此,docker 在 CentOS 系統的安裝完成。
docker run ubuntu:15.10 /bin/echo "Hello world" -- docker [option] OS /bash//echo "content"
各個參數解析:
docker: Docker 的二進制執行文件。
run:與前面的 docker 組合來運行一個容器。
ubuntu:15.10指定要運行的鏡像,Docker首先從本地主機上查找鏡像是否存在,若是不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。
/bin/echo "Hello world": 在啓動的容器裏執行的命令
以上命令完整的意思能夠解釋爲:Docker 以 ubuntu15.10 鏡像建立一個新容器,而後在容器裏執行 bin/echo "Hello world",而後輸出結果。
[option] run , stop
一、docker -h 幫助
二、獲取鏡像
sudo docker pull NAME[:TAG]
sudo docker pull centos:latest
三、啓動Container盒子
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
sudp docker run -t -i contos /bin/bash
四、查看鏡像列表,列出本地的全部images
sudo docker images [OPTIONS] [NAME]
sudo docker images centos
五、查看容器列表,可看到咱們建立過的全部container
sudo docker ps [OPTIONS]
sudo docker ps -a
六、刪除鏡像,從本地刪除一個已經下載的鏡像
sudo docker rmi IMAGE [IMAGE...]
sudo docker rmi centos:latest
七、移除一個或多個容器實例
sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]
移除全部微運行的容器
sudo docker rm sudo docker ps -aq
八、中止一個正在運行的容器
sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]
sudo docker kill 026e
九、重啓一個正在運行的容器
sudo docker restart [OPTIONS] contains[CONTAINER]
sudo docker restart 026e
十、中止一個已經中止的容器
sudo docker start [OPTIONS] CONTAINER [CONTAINER..]
sudo docker start 026e
咱們使用命令 docker build , 從零開始來建立一個新的鏡像。爲此,咱們須要建立一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構建咱們的鏡像。
runoob@runoob:~$ cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "fisher@sudops.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
每個指令都會在鏡像上建立一個新的層,每個指令的前綴都必須是大寫的。
第一條FROM,指定使用哪一個鏡像源
RUN 指令告訴docker 在鏡像內執行命令,安裝了什麼。。。
而後,咱們使用 Dockerfile 文件,經過 docker build 命令來構建一個鏡像。
runoob@runoob:~$ docker build -t runoob/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd runoob ......
參數說明:
-t :指定要建立的目標鏡像名
. :Dockerfile 文件所在目錄,能夠指定Dockerfile 的絕對路徑
使用docker images 查看建立的鏡像已經在列表中存在,鏡像ID爲860c279d2fec
runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
咱們可使用新的鏡像來建立容器
runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id runoob uid=500(runoob) gid=500(runoob) groups=500(runoob)
從上面看到新鏡像已經包含咱們建立的用戶runoob
咱們可使用 docker tag 命令,爲鏡像添加一個新的標籤。
runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
docker tag 鏡像ID,這裏是 860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標籤名(tag)。
使用 docker images 命令能夠看到,ID爲860c279d2fec的鏡像多一個標籤。
runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
Docker 刪除鏡像
分爲兩部:
首先 刪除 容器,再刪除鏡像
docker ps -a
docker rm id
刪除鏡像
docker ps -a
docker images
docker rmi id
檢查是否刪除成功
docker images
注意點:
1. 刪除前須要保證容器是中止的 stop
2. 須要注意刪除鏡像和容器的命令不同。 docker rmi ID ,其中 容器(rm) 和 鏡像(rmi)
3. 順序須要先刪除容器
參考文獻:http://www.runoob.com/docker/centos-docker-install.htmlhttp://www.runoob.com/docker/windows-docker-install.html(windows10安裝docker)https://www.cnblogs.com/yufeng218/p/8370670.htmlhttps://blog.csdn.net/winy_lm/article/details/77980529