學習Mysql過程當中拓展的其餘技術棧:Docker入門介紹

1、Docker的介紹和安裝

1. Docker是什麼

百度百科的介紹:html

Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的Linux機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口。mysql

簡單地說:sql

Docker是一個管理容器的引擎工具。它包含一個服務端和客戶端,服務端是一個管理着全部容器和文件系統的服務進程,客戶端則是一個服務端的控制器,用來控制docker的服務端進程。至於容器,主要指的是包含了一些特定應用的運行實例,既保證了當前應用的運行環境獨立,又能保證容器相互之間的獨立。docker

2. Docker的優點

一款產品從開發到上線,從操做系統,到運行環境,再到應用配置。做爲開發者,咱們須要關心不少東西,這也是不少互聯網公司都不得不面對的問題,特別是各類版本的迭代以後,不一樣版本環境的兼容,對運維人員都是考驗。Docker之因此發展如此迅速,也是由於它對此給出了一個標準化的解決方案。json

Docker提供了一套虛擬化和文件系統的支持,可讓專業人員自由組裝須要的運行環境到容器中,並提供容器運行時的隔離。就像一個大型油輪,承載着一個個集裝箱,每一個集裝箱咱們能夠理解爲咱們的容器,這個容器中的內容徹底由組裝人員自定義。vim

容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷儘可能小。傳統虛擬機方式運行 10 個不一樣的應用就要起 10 個虛擬機,而Docker 只須要啓動 10 個隔離的應用便可。centos

具體說來,Docker 在以下幾個方面具備較大的優點。api

2.一、更快速的交付和部署

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

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

2.二、更高效的虛擬化

Docker 容器的運行不須要額外的 hypervisor 支持,它是內核級的虛擬化,所以能夠實現更高的性能和效率。

2.三、更輕鬆的遷移和擴展

Docker 容器幾乎能夠在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、我的電腦、服務器等。 這種兼容性可讓用戶把一個應用程序從一個平臺直接遷移到另一個。

2.四、更簡單的管理

使用 Docker,只須要小小的修改,就能夠替代以往大量的更新工做。全部的修改都以增量的方式被分發和更新,從而實現自動化而且高效的管理。

3. Docker的架構

Docker使用一個客戶端服務器架構。Docker客戶端和Docker守護進程交流,Docker守護進程作很是重要的工做,構建,運行和分發你的Docker容器。Docker客戶端和守護進程能夠運行在一樣的系統上,或者是你能夠鏈接一個Docker客戶端到一個遠程Docker守護進程中。Docker客戶端和守護進程經過sockets或經過RESTful API進行溝通交流。

Docker client::Docker 命令行工具,是用戶使用Docker的主要方式,Docker client與Docker daemon通訊並將結果返回給用戶,Docker client也能夠經過socket或者RESTful api訪問遠程的Docker daemon

Docker daemon: Docker守護進程,運行在宿主機上,用戶經過Docker client(Docker命令)與Docker daemon交互

Docker container:容器是Docker的運行組件,啓動一個鏡像就是一個容器,容器是一個隔離環境,多個容器之間不會相互影響,保證容器中的程序運行在一個相對安全的環境中。

Docker image:鏡像是隻讀的,鏡像中包含有須要運行的文件。鏡像用來建立container,一個鏡像能夠運行多個container;鏡像能夠經過Dockerfile建立,也能夠從Docker hub/registry上下載。

Docker hub/registry::共享和管理Docker鏡像,用戶能夠上傳或者下載上面的鏡像,官方地址爲https://registry.hub.docker.com/,也能夠搭建本身私有的Docker registry。

4. Docker和Linux的關係

 

 5. docker安裝

5.1 執行安裝命令:yum -y install docker-io 

最初執行的時候報找不到docker的鏡像

已加載插件:fastestmirror, refresh-packagekit, security 設置安裝進程 Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: mirrors.njupt.edu.cn * updates: mirrors.njupt.edu.cn No package docker available.

這個時候須要更新epel第三方軟件庫,運行命令:sudo yum install epel-release 

更新完第三方軟件庫之後繼續執行安裝命令:yum -y install docker-io,安裝成功

5.2 查看安裝的docker的版本

 命令:docker version

 

5.3 啓動docker

命令:

# systemctl start docker //centos7及之後版本

# service docker start   //centos6及以前的版本

 

5.4 修改系統中docker對應的鏡像加速器方便咱們快速下載和上傳鏡像,以下:

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

 注意:新版本的docker沒有daemon.json,須要本身建一個

重啓docker

卸載docker:

Rpm方式卸載舊docker

# rpm -qa | grep -i docker  //查找已經安裝docker

# rpm -e [module1][module2][.....] //卸載docker

5.5 從鏡像庫拉取鏡像 

命令:docker pull library/hello-world

說明:

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

 

5.6 查看本機都有哪些鏡像

命令:docker images

 

5.7 運行鏡像文件

命令:

docker run hello-world

說明:

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

到此docker已經安裝完成!!!!

5.8 docker經常使用命令

拉取docker鏡像

docker pull image_name

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

docker images

 

刪除鏡像

docker rmi  hello-world   或者  docker rmi 3535063d9957

 

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

docker ps

查看全部容器

docker ps -a

建立docker 容器(能夠根據一個鏡像建立多個容器)

docker run -tid 鏡像ID /bin/bash     //非centos7 docker run -tid 鏡像ID /usr/sbin/init //centos7版本。使用/usr/sbin/init解決systemctl報錯不能使用的問題

刪除容器的命令:

docker rm container_name/container_id

 

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

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

 重命名容器:

docker rename dreamy_albattani mysql_master

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

docker attach container_name/container_id 或者 docker exec -it container_name/container_id /bin/bash

退出容器

exit

查看當前系統Docker信息

docker info

從Docker hub上下載某個鏡像:

docker pull centos:latest

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

參考文章:

1. docker入門介紹:http://www.cnblogs.com/ityouknow/p/8520296.html

2. docker入門介紹:https://www.cnblogs.com/osscoder/p/6553733.html

3. docker安裝:https://www.cnblogs.com/maodot/p/7654918.html

相關文章
相關標籤/搜索