docker安裝配置

(1)docker是什么

Docker 是一個(gè)開(kāi)源項(xiàng)目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目。基于go語(yǔ)言開(kāi)發(fā)的。后來(lái)加入了 Linux 基金會(huì)進(jìn)行維護(hù),遵從 Apache 2.0 協(xié)議,代碼在GitHub 上進(jìn)行托管。https://github.com/moby/moby

docker 的工作原理是通過(guò)將應(yīng)用程序及其所有依賴打包到一個(gè)鏡像中,然后使用docker命令將這個(gè)鏡像運(yùn)行起來(lái)。鏡像包含了運(yùn)行應(yīng)用程序所需的所有組件。

(2)docker的優(yōu)點(diǎn)

便攜性:鏡像可以將應(yīng)用程序及其依賴打包在一起,使其可以在任何支持 Docker 的環(huán)境中運(yùn)行。這種一致性避免了“在我機(jī)器上可以運(yùn)行”的問(wèn)題。
輕量級(jí):Docker運(yùn)行的容器 共享主機(jī)操作系統(tǒng)的內(nèi)核,而不需要每個(gè)容器運(yùn)行一個(gè)完整的操作系統(tǒng)。相比虛擬機(jī),這大大減少了資源開(kāi)銷,提高了運(yùn)行效率。
隔離性:每個(gè)容器相互獨(dú)立,擁有自己的文件系統(tǒng)、進(jìn)程空間和網(wǎng)絡(luò)接口。這種隔離性確保了容器間不會(huì)互相影響,提高了安全性和穩(wěn)定性。
快速啟動(dòng):Docker 容器啟動(dòng)速度非???,通常在幾秒鐘內(nèi)就能完成。這使得快速部署和擴(kuò)展應(yīng)用變得非常容易。
一致的環(huán)境:Docker 鏡像確保開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境的一致性,減少了由于環(huán)境差異導(dǎo)致的問(wèn)題。
良好的社區(qū)和生態(tài)系統(tǒng):Docker 擁有一個(gè)龐大且活躍的社區(qū),提供了豐富的鏡像、工具和文檔。Docker Hub 上有大量的官方和第三方鏡像可供使用。

(3)docker的缺點(diǎn)

性能開(kāi)銷:雖然 Docker 相比虛擬機(jī)更輕量級(jí),但容器的性能可能仍然不如直接在物理主機(jī)上運(yùn)行應(yīng)用程序,尤其是在處理 I/O 密集型任務(wù)時(shí)。
安全性問(wèn)題:由于容器共享操作系統(tǒng)內(nèi)核,容器間的隔離性不如虛擬機(jī),存在潛在的安全風(fēng)險(xiǎn)。需要額外的安全措施來(lái)保護(hù)容器環(huán)境。

(4)安裝Docker主機(jī)

操作系統(tǒng),centos7.6-7.9之間都可以:
centos目前停更了,不會(huì)繼續(xù)補(bǔ)丁,學(xué)習(xí)可以用,生產(chǎn)不建議用,所以可以用centos平替操作系統(tǒng),rockyLinux8.9

主機(jī)ip:192.168.40.180
配置:4Gib/4vCPU/100G存儲(chǔ)

(5)主機(jī)基礎(chǔ)配置執(zhí)行命令

(1)關(guān)閉selinux

為什么要關(guān)閉selinux?
SELinux 是 Linux 系統(tǒng)的一種安全機(jī)制,可以限制系統(tǒng)資源(如文件、網(wǎng)絡(luò)等)的訪問(wèn),提高系統(tǒng)的安全性。在 docker運(yùn)行過(guò)程中,需要訪問(wèn)系統(tǒng)資源,但 SELinux 可能會(huì)限制訪問(wèn),從而影響 docker的運(yùn)行。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

備注:修改selinux配置文件之后,重啟linux機(jī)器,selinux配置才能永久生效,重啟之后,登錄到機(jī)器,執(zhí)行如下命令:

getenforce

如果顯示Disabled說(shuō)明selinux已經(jīng)關(guān)閉

(2)安裝基礎(chǔ)包

備注:centos7目前默認(rèn)的yum源大部分人無(wú)法用,可以使用阿里云的源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

更新yum源,清緩存,重新生產(chǎn)緩存文件
yum clean all && yum makecache

yum install -y device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack telnet ipvsadm

如果以上執(zhí)行有問(wèn)題,可以執(zhí)行如下代碼,單獨(dú)執(zhí)行安裝

yum install -y lrzsz
yum install -y curl
yum install -y sudo
yum install -y telnet
yum install -y net-tools
yum install -y curl-devel
yum install -y python-devel
yum install -y openssh-server
yum install -y vim
yum install -y telnet
yum install -y ipvsadm
yum install -y unzip

(3)配置機(jī)器主機(jī)名
在192.168.40.180上執(zhí)行如下:
hostnamectl set-hostname xianchaomaster1 && bash

(4)置主機(jī)hosts文件,相互之間通過(guò)主機(jī)名互相訪問(wèn)
修改每臺(tái)機(jī)器的/etc/hosts文件,文件最后增加如下內(nèi)容:
192.168.40.180 xianchaomaster1

修改之后的文件如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.180 xianchaomaster1

(5)關(guān)閉firewalld防火墻
[root@xianchaomaster1 ~]# systemctl stop firewalld ;systemctl disable firewalld

(6)配置時(shí)間同步

如果是centos7.9系統(tǒng),按照如下方法同步時(shí)間:

[root@xianchaomaster1 ~]# yum install ntpdate -y

跟網(wǎng)絡(luò)時(shí)間做同步

[root@xianchaomaster1 ~]# ntpdate cn.pool.ntp.org

把時(shí)間同步做成計(jì)劃任務(wù)

[root@xianchaomaster1 ~]# crontab -e

          • /usr/sbin/ntpdate cn.pool.ntp.org

            [root@xianchaomaster1 ~]# systemctl restart crond

如果是rockylinux8.9系統(tǒng),按照如下方法同步時(shí)間:

在xianchaomaster1上執(zhí)行如下:
開(kāi)始安裝chrony服務(wù)
[root@xianchaomaster1 ~]# yum -y install chrony #如果沒(méi)有該服務(wù)安裝一下
[root@xianchaomaster1 ~]# systemctl enable chronyd --now #設(shè)置chronyd開(kāi)機(jī)啟動(dòng)并立即啟動(dòng)chronyd服務(wù)同步網(wǎng)絡(luò)時(shí)間

編輯 chronyd 配置文件,使用中國(guó)的時(shí)間服務(wù)器同步時(shí)間,速度更快
[root@xianchaomaster1 ~]# vim /etc/chrony.conf

文件最后增加如下內(nèi)容

server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp1.tencent.com iburst
server ntp2.tencent.com iburst

Iburst 選項(xiàng)說(shuō)明: 如果設(shè)置該選項(xiàng),前四輪詢之間的間隔將是2秒,而不是minpoll。 這對(duì)于在chronyd啟動(dòng)后快速獲得時(shí)鐘的第一次更新非常有用。
即:重啟chronyd后,2秒后,直接同步一次時(shí)間。以下是官方解釋:

[root@xianchaomaster1 ~]# systemctl restart chronyd
[root@xianchaomaster1 ~]#date #查看當(dāng)前時(shí)間

寫個(gè)計(jì)劃任務(wù),定時(shí)同步時(shí)間:
[root@xianchaomaster1 ~]# crontab -e

          • /usr/bin/systemctl restart chronyd

[root@xianchaomaster1 ~]# systemctl restart crond

(6)安裝Docker服務(wù)

1.配置安裝docker需要的repo源

配置國(guó)內(nèi)安裝docker的阿里云在線源

[root@xianchaomaster1 ~]#yum install yum-utils -y
[root@xianchaomaster1 ~]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@xianchaomaster1 ~]# yum clean all && yum makecache

2.修改機(jī)器內(nèi)核參數(shù)

有些機(jī)器執(zhí)行這條命令報(bào)錯(cuò),可以不用管

[root@xianchaomaster1 ~]#modprobe br_netfilter

[root@xianchaomaster1 ~]#vim /etc/sysctl.d/docker.conf

輸入如下內(nèi)容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

[root@xianchaomaster1 ~]#sysctl -p /etc/sysctl.d/docker.conf

01.png

3、安裝docker

[root@xianchaomaster1 ~]# yum install docker-ce-24.0.6 -y
[root@xianchaomaster1 ~]# systemctl start docker
[root@xianchaomaster1 ~]# systemctl enable docker
[root@xianchaomaster1 ~]# systemctl status docker -l

02.png

docker 服務(wù)安裝成功

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容