Docker學習計劃二:基本配置

來源:http://www.ityouknow.com/docker/2018/03/07/docker-introduction.htmlhtml

Docker 將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。linux

程序在這個虛擬容器裏運行,就好像在真實的物理機上運行同樣。有了 Docker,就不用擔憂環境問題。nginx

爲何要使用Docker?sql

 

一、更快速的交付和部署docker

 

對開發和運維(devop)人員來講,最但願的就是一次建立或配置,能夠在任意地方正常運行。json

 

開發者可使用一個標準的鏡像來構建一套開發容器,開發完成以後,運維人員能夠直接使用這個容器來部署代碼。 Docker 能夠快速建立容器,快速迭代應用程序,並讓整個過程全程可見,使團隊中的其餘成員更容易理解應用程序是如何建立和工做的。 Docker 容器很輕很快!容器的啓動時間是秒級的,大量地節約開發、測試、部署的時間。centos

相關概念:api

 

Docker是CS架構,主要有兩個概念:tomcat

 

  • Docker daemon: 運行在宿主機上,Docker守護進程,用戶經過Docker client(Docker命令)與Docker daemon交互
  • Docker client: Docker 命令行工具,是用戶使用Docker的主要方式,Docker client與Docker daemon通訊並將結果返回給用戶,Docker client也能夠經過socket或者RESTful api訪問遠程的Docker daemon

 

Docker的三個主要概念:安全

  • Docker image:鏡像是隻讀的,鏡像中包含有須要運行的文件。鏡像用來建立container,一個鏡像能夠運行多個container;鏡像能夠經過Dockerfile建立,也能夠從Docker hub/registry上下載。
  • Docker container:容器是Docker的運行組件,啓動一個鏡像就是一個容器,容器是一個隔離環境,多個容器之間不會相互影響,保證容器中的程序運行在一個相對安全的環境中。
  • Docker hub/registry: 共享和管理Docker鏡像,用戶能夠上傳或者下載上面的鏡像,官方地址爲https://registry.hub.docker.com/,也能夠搭建本身私有的Docker registry。

鏡像就至關於打包好的版本,鏡像啓動以後運行在容器中,倉庫就是裝存儲鏡像的地方。

 

Docker安裝

建議在linux環境下安裝Docker,window環境搭建比較複雜且容易出錯,使用Centos7+yum來安裝Docker環境很方便

Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源裏。所以想要安裝 docker,只須要運行下面的 yum 命令:

yum install docker

 安裝完成後,使用下面的命令來啓動 docker 服務,並將其設置爲開機啓動:

service docker start
chkconfig docker on

 

如採用CentOS 7中支持的新式 systemd 語法,以下:

systemctl start docker.service
systemctl enable docker.service

 

測試

docker version

 

輸入上述命令,返回docker的版本相關信息,證實docker安裝成功。

 

Hello World

下面,咱們經過最簡單的 image 文件」hello world」,感覺一下 Docker。

由於國內鏈接 Docker 的官方倉庫很慢,所以咱們在平常使用中會使用Docker 中國加速器。經過 Docker 官方鏡像加速,中國區用戶可以快速訪問最流行的 Docker 鏡像。該鏡像託管於中國大陸,本地用戶如今將會享受到更快的下載速度和更強的穩定性,從而可以更敏捷地開發和交付 Docker 化應用。

Docker 中國官方鏡像加速可經過registry.docker-cn.com訪問。該鏡像庫只包含流行的公有鏡像,私有鏡像仍須要從美國鏡像庫中拉取。

修改系統中docker對應的配置文件便可,以下:

vi  /etc/docker/daemon.json #添加後 { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }

 

運行下面的命令,將 image 文件從倉庫抓取到本地。

docker pull library/hello-world

 

上面代碼中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在倉庫裏面的位置,其中library是 image 文件所在的組,hello-world是 image 文件的名字。

抓取成功之後,就能夠在本機看到這個 image 文件了。

docker images #顯示結果 REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB

 

如今,運行這個 image 文件。

docker run hello-world #顯示結果 Hello from Docker! This message shows that your installation appears to be working correctly. ...

 

輸出這段提示之後,hello world就會中止運行,容器自動終止。有些容器不會自動終止,由於提供的是服務,好比Mysql鏡像等。

經常使用命令

除過以上咱們使用的Docker命令外,Docker還有一些其它經常使用的命令

拉取docker鏡像

docker pull image_name

 

查看宿主機上的鏡像,Docker鏡像保存在/var/lib/docker目錄下:

docker images

 

刪除鏡像

docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30

 

查看當前有哪些容器正在運行

docker ps

 

查看全部容器

docker ps -a

 

啓動、中止、重啓容器命令:

docker start container_name/container_id docker stop container_name/container_id docker restart container_name/container_id

 

後臺啓動一個容器後,若是想進入到這個容器,可使用attach命令:

docker attach container_name/container_id

 

刪除容器的命令:

docker rm container_name/container_id

 

刪除全部中止的容器:

docker rm $(docker ps -a -q)

 

查看當前系統Docker信息

docker info

 

從Docker hub上下載某個鏡像:

docker pull centos:latest
docker pull centos:latest

 

查找Docker Hub上的nginx鏡像

docker search nginx

 

執行docker pull centos會將Centos這個倉庫下面的全部鏡像下載到本地repository。

相關文章
相關標籤/搜索