Docker在虛擬機器中的安裝
Docker 是一個開源的應用容器引擎,基於Go 語言並遵從 Apache2.0 協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app)更重要的是容器效能開銷極低。
Docker支援將軟體編譯成映象;在映象中支援各種軟體配置好併發布,其他使用者可以直接使用配置好的映象。執行中的映象稱之為容器,容器啟動速度很快。類似於封裝好的Windows系統,通過U盤直接安裝即可,不需要進行系統配置軟體
Docker的應用場景:
- Web應用的自動化打包釋出;
- 自動化測試和持續整合、釋出;
- 在服務型環境中部署調整資料庫或其他的後臺應用;
- 從頭編譯或者擴充套件現有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環境。
Docker的優點:
- 快速、一致性的交付應用程式
- 響應式部署和擴充套件
- 充分利用虛擬機器資源
二、Docker核心概念
Docker主機(Host):安裝了Docker程式的機器(Docker直接安裝在作業系統中)
Docker客戶端(Client):連線Docker主機進行操作;
Docker容器(Container):映象啟動後的例項,獨立執行的一個或一組應用;
Docker映象(Image):打包好的軟體,用於建立Docker容器的模板;
Docker倉庫(Respository):用於儲存打包好的軟體映象;
關係示意圖:
Docker的基本使用方式:
① 在機器中安裝Docker;
② 在Docker倉庫中尋找這個軟體對應的映象;
③ 使用Docker執行映象,生成一個Docker容器;
④ 容器的啟動或停止相當於對軟體的啟動和停止;
三、Docker的搭建
Docker版本要求
更新yum
安裝docker ce即社群免費版,先安裝必要的軟體包,安裝yum-utils,它提供一個yum-config-manager單元,同時安裝的device-mapper-persistent-data和lvm2用於儲存裝置對映(devicemapper)必須的兩個軟體包。
要求 CentOs7 系統的核心版本高於 3.10,可通過如下指令檢視版本
uname -r
1.更新yum
安裝docker ce即社群免費版,先安裝必要的軟體包,安裝yum-utils,它提供一個yum-config-manager單元,同時安裝的device-mapper-persistent-data和lvm2用於儲存裝置對映(devicemapper)必須的兩個軟體包。
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
緊接著配置一個穩定(stable)的倉庫 ,倉庫配置會儲存到/etc/yum.repos.d/docker-ce.repo檔案中。此處我們使用阿里雲。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新Yum安裝的相關Docke軟體包
sudo yum makecache fast
出現如下錯誤:
yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
更新索引的時候出錯,即centos8沒有該引數,解決辦法為:去掉fast引數
sudo yum makecache
檢視倉庫版本,並指定版本安裝
檢視版本
yum list docker-ce --showduplicates | sort -r
安裝yum install -y docker-ce docker-ce-cli 最新的版本
yum install -y docker-ce docker-ce-cli 解除安裝: yum list installed | grep docker yum remove 移除需要解除安裝的元件
出現如下錯誤: Problem: package docker-ce-3:18.09.9-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed,根據提示,需要containerd.io的版本 >= 1.2.2-3
也有可能出現此錯誤
解決方式:
yum erase podman buildah
(1)安裝wget指令
yum install wget
(2)獲取rpm包
wget http://docker-release-purple-prod.s3-website-us-east-1.amazonaws.com/linux/centos/8/x86_64/edge/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm
(3)升級containerd.io(安裝rpm包)
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
(4)重新安裝docker-ce
yum install docker-ce
出現這個就表示已經安裝完成了;
啟動docker:
我們執行docker info看看結果
docker info
如果出現如下警告:
Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon runming?
那是docker服務沒有啟動,解決辦法:
sudo systemctl start docker
設定為開機自啟動
sudo systemctl enable docker
可:
sudo systemctl start docker && sudo systemctl enable docker
驗證檢視版本:
docker version
或者:
sudo docker ps
說明安裝,並且服務已經啟動成功啦
檢視docker執行狀態
systemctl status docker
四、Docker常用的命令
安裝Nginx
docker pull nginx
拉取映象:
docker pull busybox
拉取映象慢,配置載入映象地址:
{ "registry - mirrors ": ["https: //ebkn7ykm.mirror.aliyuncs.com", "https: //docker.mirrors.ustc.edu.cn", "http: //f1361db2.m.daocloud.io", "https: //registry.docker-cn.com" ] }
檢視映象列表:
docker images
前端介面新增一個容器,我們一般不用這個:
docker run +名字+nginx映象列表對應的ID
docker run --name nginx-container 605c77e624dd
如果要使用後端新增的話,用以下命令:加上-d
docker run -d --name nginx-container 605c77e624dd
就可以看到我們已經把它新建出來了
用此命令可以檢視它的log
docker log e488175ea6b1
如果我們想給它做個埠對映:+ “-P”【大寫】
docker run -d -P --name nginx-container-1 605c77e624dd
上面埠是隨機的,我們也可以指定埠:docker+run+-d(後端執行)+-p(小寫) +對應埠+名稱+nginx:latest(映象列表的名字)
docker run -d -p 12300:80 --name nginx-container-2 nginx:latest
同樣看一下效果:
作者:wangwangwangMax
出處:
http://www.cnblogs.com/wangwangwangMax/