centos7安裝軟件太麻煩?試試docker容器安裝及docker常用命令

docker簡介

Docker官方網址:https://docs.docker.com/ (英文地址)
Docker中文網址:http://www.docker.org.cn/ (中文地址)

Docker是基於Go語言實現的雲開源項目,誕生於2013年初,最初發起者是dotClouw公司。Docker 自開源後受到廣泛的關注和討論,目前已有多個相關項目,逐斷形成了圍Docker的生態體系。dotCloud 公司後來也改名爲Docker Ine。

Docker是一個開源的容器引擎,它有助於更快地交付應用。 Docker可將應用程序和基礎設施層隔離,並且能將基礎設施當作程序一樣進行管理。使用 Docker可更快地打包、測試以及部署應用程序,並可以縮短從編寫到部署運行代碼的週期。

docker架構

在這裏插入圖片描述
客戶端→Docker_Host(宿主機)→倉庫
容器→鏡像→倉庫

Docker daemon( Docker守護進程)

Docker daemon是一個運行在宿主機( DOCKER-HOST)的後臺進程。可通過 Docker客戶端與之通信。

Client( Docker客戶端)

Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,並與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。

Images( Docker鏡像)

Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。

Container(容器)

容器是鏡像的可運行實例。鏡像和容器的關係有點類似於面向對象中,類和對象的關係。可通過 Docker API或者 CLI命令來啓停、移動、刪除容器。

Registry

Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像後,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動複製。此時可藉助 Docker Registry來避免鏡像的手動複製。

一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標籤,每個標籤對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那麼 Docker倉庫就可理解爲某jar包的路徑,而鏡像標籤則可理解爲jar包的版本號。

Docker與虛擬機比較

作爲一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:

  • Docker容器很快,啓動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。
  • Docker容器對系統資源需求很少,一臺主機上可以同時運行數千個Docker容器。
  • Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
  • Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。

docker的優點

簡化程序

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的 任務,在Docker容器的處理下,只需要數秒就能完成。

避免選擇恐懼症

如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、後臺應用、數據庫應用、大數據應用比如 Hadoop 集羣、消息隊列等等都可以打包成一個鏡像部署。

節省開支

一方面,雲計算時代到來,使開發者不必爲了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

centos7安裝docker

採用yum安裝docker

  1. 使用 root 權限登錄 Centos7,確保 yum 包更新到最新。
yum -y update
  1. 如果安裝過docker,先卸載舊版本
yum remove docker docker-common docker-selinux docker-engine
  1. 安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 設置yum源
yum -config -manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 可以查看所有倉庫中所有docker版本,並選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r
  1. 安裝docker
sudo yum install -y docker-ce
  1. 啓動並加入開機啓動
systemctl start docker
systemctl enable docker
  1. 驗證安裝是否成功(有client和service兩部分表示docker安裝啓動都成功了)
docker version

鏡像加速

直接從Docker Hub下載鏡像速度會很慢,一般會採用鏡像加速。

使用阿里鏡像加速

詳細參考: https://cr.console.aliyun.com/cn-hangzhou/mirrors

阿里鏡像如果想要使用必須註冊,所以也可以採用下列的方式

修改docker鏡像源
  1. 首先,修改配置文件vim /etc/docker/daemon.json
{
	"registry-mirrors": ["https//registry.docker-cn.com"]
}
  1. 加載Docker配置systemctl daemon-reload
  2. 重啓Dockersystemctl restart docker.service

附:
國內的幾個優秀的Docker源


docker常用命令

鏡像相關命令

1. 搜索鏡像

例如搜索java鏡像

docker search java

可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類似maven的中央倉庫)中的鏡像。執行該命令後, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。

Docker Hub 官網:https://hub.docker.com/search?q=java&type=image

2.下載鏡像

例如下載jdk8

docker pull java:8

使用命令docker pull命令即可從 Docker Registry上下載鏡像,執行該命令後,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java後面加冒號指定版本。

3.查看已下載鏡像
docker images
4.刪除鏡像

d23bdf5b1b1bdocker images查詢出的當前java:8de1鏡像ID。
java:8爲下載鏡像時的鏡像及版本
以下兩種方式都可以刪除。

docker rmi d23bdf5b1b1b
docker rmi java:8
注意
  1. 要刪除鏡像,必須先刪除依賴於此鏡像的所有容器。
  2. 要刪除容器,必須要先停止此容器。

容器相關命令

1. 啓動容器
docker run -d -p 81:80 nginx

-d 後臺運行
-p 宿主機端口:容器端口 #開放容器端口到宿主機端口
訪問 http://Docker宿主機 IP:81/,將會看到nginx的主界面

需要注意的是,使用 docker run命令創建容器時,會先檢查本地是否存在指定鏡像。如果本地不存在該名稱的鏡像, Docker就會自動從 Docker Hub下載鏡像並啓動一個 Docker容器。

2.查看運行中的所有容器
docker ps
3. 查看所有的容器
docker ps –a
4.停止運行中的容器
docker stop 運行容器名/容器id
5.刪除容器
docker rm 運行容器名/容器id

注意:刪除容器前必須先停止容器

6.清空所有未運行的容器
docker rm $(sudo docker ps -a -q)
7.進入容器
docker container(可省略) exec -it 運行容器名/容器id /bin/bash

默認情況下軟件安裝的目錄在/ect目錄下

8.退出進入容器的狀態
exit
9.查看容器信息
docker inspect 運行容器名/容器id
10.查看容器的日誌
docker logs --tail  300 -f 運行容器名/容器id
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章