docker、dockerfile與docker-compose區(qū)別
docker:和操作系統(tǒng)無關(guān)的一個(gè)沙箱容器胖喳,宿主機(jī)安裝的什么操作系統(tǒng)和其本身無關(guān)重付,在它基礎(chǔ)上可以制作各種系統(tǒng)類型的基礎(chǔ)服務(wù)
Dockerfile:是把手工安裝docer鏡像的過程變成一個(gè)配置文件的方式運(yùn)行删掀,這樣每次不需要一步步手敲命令去安裝了款票,而只是需要一個(gè)配置文件運(yùn)行既可生成一個(gè)鏡像
docker-compos:提供了服務(wù)和項(xiàng)目的概念,這樣一個(gè)服務(wù)可以配置多個(gè)項(xiàng)目,這個(gè)服務(wù)是多個(gè)項(xiàng)目的集合體,啟動(dòng)和關(guān)閉都相對(duì)一個(gè)一個(gè)項(xiàng)目的啟動(dòng)要方便很多
0x01:docker的安裝
第一步:刪除舊版本和相關(guān)依賴
yumremovedocker?\
docker-client?\
docker-client-latest?\
docker-common?\
docker-latest?\
docker-latest-logrotate?\
docker-logrotate?\
docker-engine
第二步: 安裝依賴
yuminstall-y?yum-utils?\
device-mapper-persistent-data\
lvm2
第三步: 配置穩(wěn)定的repositories
yum-config-manager?\
--add-repo?\
https://download.docker.com/linux/centos/docker-ce.repo
第四步: 安裝docker
yuminstalldocker-cedocker-ce-clicontainerd.io
完成后通過docker version命令查看docker的版本信息
啟動(dòng):systemctl start docker
開機(jī)啟動(dòng):systemctl enable docker
0x02:安裝docker-compose
docker-compose的版本列表:
https://github.com/docker/compose/releases/
docker-compose主要有以下兩種安裝方式
方法一
curl?-L?????\
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname?-s`-`uname?-m`>/usr/local/bin/docker-compose
添加權(quán)限
chmod?+x?/usr/local/bin/docker-compose
查看版本信息
docker-compose--version
但是此方法會(huì)經(jīng)常因?yàn)榫W(wǎng)絡(luò)的原因而無法安裝
方法二
1吃媒、安裝python-pip
yum?-yinstallepel-release
yum?-yinstallpython-pip
2刑桑、安裝docker-compose
pipinstall?docker-compose
待安裝完成后琢锋,執(zhí)行查詢版本的命令,即可安裝docker-compose
docker-compose?version
方式一相對(duì)簡(jiǎn)單鹏浅,但是由于網(wǎng)絡(luò)問題式塌,常常安裝不上劳淆,并且經(jīng)常會(huì)斷開栏妖;方式二略微麻煩屁奏,但是安裝過程比較穩(wěn)定勇边。另外卸載卸載docker-compose镰踏,只需要?jiǎng)h除二進(jìn)制文件就OK了谨敛。
0x03:附錄
在安裝的過程中欲芹,可能會(huì)遇到一些奇奇怪怪的問題揭鳞,小編在安裝完docker-compose后遇到執(zhí)行命令:
docker-compose--version
如下問題(異常堆棧沒有保留到:
/usr/lib64/python2.7/site-packages/cryptography/__init__.py:39:?CryptographyDeprecationWarning
看樣子python版本跟docker-compose不兼容問題。一不小心執(zhí)行了如下命令
##強(qiáng)制刪除已安裝程序及其關(guān)聯(lián)
rpm?-qa|grep?python|xargs?rpm?-ev?--allmatches?--nodeps
##刪除所有殘余文件?##xargs臭觉,允許你對(duì)輸出執(zhí)行其他某些命令?
whereis?python?|xargs?rm?-frv
##驗(yàn)證刪除昆雀,返回?zé)o結(jié)果?
whereis?python
最終發(fā)現(xiàn)把python和yum全部給刪除了【好大的杯具】。最終重新安裝一下python和yum蝠筑,只能使用rpm命令安裝python和yum狞膘;執(zhí)行如下命令下載如下rpm包
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/libxml2-python-2.9.1-6.el7.4.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/lvm2-python-libs-2.02.186-7.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-2.7.5-88.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python2-rpm-macros-3-32.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-backports-1.0-8.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-devel-2.7.5-88.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-libs-2.7.5-88.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-rpm-macros-3-32.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-srpm-macros-3-32.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-virtualenv-15.1.0-2.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-build-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-build-libs-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-python-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-sign-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-167.el7.centos.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-aliases-1.1.31-53.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-53.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-protectbase-1.1.31-53.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-53.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/python-ipaddress-1.0.16-2.el7.noarch.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/libxml2-2.9.1-6.el7.4.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/libxml2-devel-2.9.1-6.el7.4.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-libs-4.11.3-43.el7.x86_64.rpm
wgethttp://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-devel-4.11.3-43.el7.x86_64.rpm
要注意的是有的包名字可能會(huì)更新,那么就去找相似的去替代即可什乙。
安裝python
rpm?-ivh?python-*???rpm-python-*
安裝yum
rpm-ivh?yum-*
如果安裝過程出現(xiàn)了類似下面的代碼挽封,這是包與包之間的依賴關(guān)系的問題,只需要卸載已經(jīng)安裝的包【rpm -e 包名(沒有.rpm后綴)】臣镣,然后先安裝依賴包辅愿,即可。