Docker安裝及基本使用方法詳細(xì)介紹
Docker是一個(gè)用了一種新穎方式實(shí)現(xiàn)的超輕量虛擬機(jī),在實(shí)現(xiàn)的原理和應(yīng)用上還是和VM有巨大差別,專(zhuān)業(yè)的叫法是應(yīng)用容器(Application Container)。(我個(gè)人還是喜歡稱(chēng)虛擬機(jī))
Docker應(yīng)用容器相對(duì)于 VM 有以下幾個(gè)優(yōu)點(diǎn):
- 啟動(dòng)速度快,容器通常在一秒內(nèi)可以啟動(dòng),而 VM 通常要更久
- 資源利用率高,一臺(tái)普通PC 可以跑上千個(gè)容器,你跑上千個(gè) VM 試試
- 性能開(kāi)銷(xiāo)小, VM 通常需要額外的 CPU 和內(nèi)存來(lái)完成 OS 的功能,這一部分占據(jù)了額外的資源
Docker安裝
CentOS6上安裝Docker
# yum -y install epel-release # yum -y install docker-io
CentOS7上安裝Docker
# yum -y install docker
啟動(dòng)Docker
# /etc/init.d/docker start
如果啟動(dòng)后無(wú)進(jìn)程,日志中出現(xiàn):
/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
解決辦法:
# yum upgrade device-mapper-libs
Docker鏡像管理
# docker pull centos //從docker.com獲取centos鏡像 # docker images //查看本地都有哪些鏡像 # docker tag centos fansik //為centos鏡像設(shè)置標(biāo)簽為fansik,再使用docker images查看會(huì)多出來(lái)一行,該行的image id和centos的一樣 # docker search [image-name] //從docker倉(cāng)庫(kù)搜索docker鏡像,后面是關(guān)鍵詞 # docker run -t -i centos /bin/bash //用下載到的鏡像開(kāi)啟容器,-i表示讓容器的標(biāo)準(zhǔn)輸入打開(kāi),-t表示分配一個(gè)偽終端,要把-i和-t放在鏡像名字前面
當(dāng)鏡像發(fā)生修改后,我們可以把鏡像提交重新生成一個(gè)新版本進(jìn)行再本地
docker ps //查看運(yùn)行的容器,加上-a選項(xiàng)可以查看沒(méi)有運(yùn)行的容器
docker rmi centos //用來(lái)刪除指定得鏡像,其中后面的參數(shù)可以是tag,如果是tag時(shí),實(shí)際上刪除的是該tag,只要改鏡像還有其他tag,就不會(huì)刪除該鏡像,當(dāng)后面的參數(shù)為鏡像ID時(shí),則會(huì)徹底刪除整個(gè)鏡像,連同所有標(biāo)簽一同刪除
# docker tag centos centos:fansik創(chuàng)建一個(gè)REPOSITORY為centos,TAG為fansik的鏡像
# docker rmi centos:fansik刪除REPOSITORY為centos,TAG為fansik的鏡像
Docker鏡像使用容器生成新的鏡像
進(jìn)入之前創(chuàng)建的容器
- # docker ps -a;查看有哪些容器
- # docker start dad4e9070e2b啟動(dòng)id為dad4e9070e2b的容器(id可以簡(jiǎn)寫(xiě)為前幾位)
- # docker exec -it dad4e9070e2b /bin/bash進(jìn)入到容器中
- 里面可以直接使用yum安裝需要的軟件
運(yùn)行docker run后,進(jìn)入到該容器中,我們做一些變更,比如安裝一些東西,然后針對(duì)這個(gè)容器進(jìn)行創(chuàng)建的新的鏡像
docker commit -m "change somth" -a "somebody info" container_id(通過(guò)docker ps -a獲取id) 新鏡像名字
例如:docker commit -m "install httpd" -a "Aming" dad4e9070e2b aming/centos
這個(gè)命令有點(diǎn)像svn的提交,-m加一些改動(dòng)信息,-a指定作者相關(guān)信息 dad4e9070e2b為容器id,再后面為新鏡像的名字
Docker基于本地模板導(dǎo)入創(chuàng)建鏡像
- 模塊提取,可以直接在網(wǎng)上下載一個(gè)模塊(可以復(fù)制鏈接然后直接wget)http://openvz.org/Download/templates/precreated
- 導(dǎo)入鏡像的命令是:# cat ubuntu-15.10-x86_64-minimal.tar.gz | docker import - ubuntu
- 把現(xiàn)有鏡像,導(dǎo)出為一個(gè)文件:# docker save -o fansik-httpd.tar httpd(倉(cāng)庫(kù)名或者鏡像ID)
- 用備份文件恢復(fù)本地鏡像:# docker load --input fansik-httpd.tar或者:# docker load < fansik-httpd.tar
- 把自己的鏡像上傳到dockerhub官方網(wǎng)站,但需要先注冊(cè)用戶docker push image_name
原文鏈接:http://www.cnblogs.com/fansik/p/5526938.html
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker本地部署Drupal并實(shí)現(xiàn)公網(wǎng)訪問(wèn)的詳細(xì)步驟
Drupal是使用PHP語(yǔ)言編寫(xiě)的開(kāi)源內(nèi)容管理框架(CMF),它由內(nèi)容管理系統(tǒng)(CMS)和PHP開(kāi)發(fā)框架(Framework)共同構(gòu)成,這篇文章主要給大家介紹了關(guān)于Docker本地部署Drupal并實(shí)現(xiàn)公網(wǎng)訪問(wèn)的詳細(xì)步驟,需要的朋友可以參考下2023-12-12Docker?ZooKeeper3.4.10集群安裝配置過(guò)程
這篇文章主要介紹了ZooKeeper3.4.10集群安裝配置-Docker,集群部署配置步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Docker高級(jí)教程之智能添加與修改防火墻規(guī)則
這篇文章主要介紹了Docker高級(jí)教程之智能添加與修改防火墻規(guī)則,需要的朋友可以參考下2017-01-01docker 編輯Dockerfile 添加php7.2 acpu的問(wèn)題
這篇文章主要介紹了docker 編輯Dockerfile 添加php7.2 acpu問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07docker maven plugin快速部署微服務(wù)的詳細(xì)流程
本文給大家介紹docker?maven?plugin微服務(wù)快速部署方法,主要將Dockerfile寫(xiě)在pom中方便項(xiàng)目管理,將微服務(wù)的 打包、上傳、鏡像創(chuàng)建操作整合到一條命令中執(zhí)行,感興趣的朋友跟隨小編一起看看吧2022-04-04IntelliJ IDEA(2018版)安裝docker插件的詳細(xì)過(guò)程
這篇文章主要介紹了IntelliJ IDEA安裝docker插件的詳細(xì)過(guò)程,開(kāi)發(fā)工具使用的是IDEA2018.16版,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09關(guān)于docker啟動(dòng)jenkins環(huán)境的問(wèn)題
這篇文章主要介紹了docker啟動(dòng)jenkins環(huán)境的問(wèn)題,文中提到了jenkins基本工作原理及管理員密碼獲取方法,對(duì)docker啟動(dòng)jenkins環(huán)境相關(guān)知識(shí)感興趣的朋友一起看看吧2022-04-04