成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Podman 和 Docker 的安裝、部署和設(shè)置

系統(tǒng) Linux
容器部署是實際使用和實踐容器的第一步,本文結(jié)合筆者實際生產(chǎn)實踐使用,詳細(xì)梳理了Podman和Docker如何在不同環(huán)境下(在線環(huán)境及離線環(huán)境)進(jìn)行安裝和部署,以及在部署后如何對Docker的常用功能進(jìn)行相關(guān)設(shè)置以便更好地使用,并對容器部署中可能遇到的坑進(jìn)行了說明。

1、Linux 容器介紹

Linux容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程。運行這些進(jìn)程所需的所有文件都由另一個鏡像提供, 這意味著從開發(fā)到測試再到生產(chǎn)的整個過程中,Linux 容器都具有可移植性和一致性。因而,相對于依賴重復(fù)傳統(tǒng)測試環(huán)境的開發(fā)渠道,容器的運行速度要快得多。容器比較普遍也易于使用,因此也成了 IT 安全方面的重要組成部分。

圖片

容器可以確保您的應(yīng)用擁有必需的庫、依賴項和文件,讓您可以在生產(chǎn)中自如地遷移這些應(yīng)用,無需擔(dān)心會出現(xiàn)任何負(fù)面影響。實際上,您可以將容器鏡像中的內(nèi)容,視為 Linux 發(fā)行版的一個安裝實例,因為其中完整包含 RPM 軟件包、配置文件等內(nèi)容。

容器從出現(xiàn)開始,迅速成為現(xiàn)代數(shù)據(jù)中心的必要組成部分。目前流行的容器引擎包括Docker以及下一代符合Open Container Initiative(OCI)標(biāo)準(zhǔn)的容器。

Docker 是一個開源的應(yīng)用容器引擎,屬于 Linux 容器的一種封裝,Docker 提供簡單的容器使用接口,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到Linux 機器上,但Docker也有兩個主要缺點:

  • Docker 需要在你的系統(tǒng)上運行一個守護(hù)進(jìn)程;
  • Docker 是以 root 身份在你的系統(tǒng)上運行該守護(hù)程序。

這些缺點的存在可能有一定的安全隱患,為了解決這些問題,下一代容器化工具Podman出現(xiàn)了。圖片

Podman是一個開源的容器管理工具,其可在大多數(shù)Linux平臺上使用,它是一種無守護(hù)程序的容器引擎,用于在Linux系統(tǒng)上開發(fā),管理和運行任何符合Open Container Initiative(OCI)標(biāo)準(zhǔn)的容器和容器鏡像, 提供了一個與Docker兼容的命令行前端。Podman控制下的容器既可以由root用戶運行,也可以由非特權(quán)用戶運行。

使用Podman,Skopeo和Buildah的新一代容器架構(gòu)工具后,可以解決由于docker守護(hù)程序?qū)е碌膯雍桶踩珕栴}。

2、Podman 和docker主要不同之處

docker 需要在我們的系統(tǒng)上運行一個守護(hù)進(jìn)程(docker daemon),而podman 不需要。

  • 啟動容器的方式不同:docker cli 命令通過API跟 Docker Engine(引擎)交互告訴它我想創(chuàng)建一個container,然后docker Engine才會調(diào)用OCI container runtime(runc)來啟動一個container。這代表container的process(進(jìn)程)不會是Docker CLI的child process(子進(jìn)程),而是Docker Engine的child process。
  • Podman是直接給OCI containner runtime(runc)進(jìn)行交互來創(chuàng)建container的,所以container process直接是podman的child process。
  • docker需要使用root用戶來創(chuàng)建容器,但是podman不需要。

3、Podman部署和常見操作

Podman的安裝部署非常簡便,參考如下:

(1). Arch Linux & Manjaro Linux

sudo pacman -S podman

(2). Fedora,Centos,RHEL

sudo yum -y install podman

(3). Gentoo

sudo emerge app-emulation/libpod

(4). MacOS

brew cask install podman

基本常用命令:

podman info
podman version
podman images
podman rmi
podman ps

Podman CLI 里面很多指令都和Docker CLI 相同,官方給出了這么個例子alias docker=podman,所以說經(jīng)常使用Docker CLI的人使用Podman上手非常快。

運行一個容器

圖片

列出當(dāng)前所有的容器

圖片

查看一個鏡像信息

圖片

查看容器運行的日志

圖片

查看運行中容器資源使用情況

圖片

圖片


4、Docker部署

4.1 部署準(zhǔn)備工作

Docker CE即社區(qū)版(Community Edition),免費使用。這里以CentOS為例來介紹Docker的部署流程。在部署前,需要具備以下環(huán)境:

  • CentOS 7 及以上版本的操作系統(tǒng)
  • Linux內(nèi)核版本不低于3.10(CentOS 7 滿足最低內(nèi)核的要求)
  • 已啟用centos-extras倉庫(默認(rèn)情況此倉庫是啟用的,使用yum repolist可以查看是否存在。如未啟用,可安裝yum-utils后執(zhí)行 yum-config-manager --enable extras 進(jìn)行啟用)
  • 若安裝了舊版本Docker相關(guān)內(nèi)容,需進(jìn)行卸載,舊版本的Docker稱為docker或者docker-engine,卸載命令如下:(若未做說明,后續(xù)命令均以root用戶執(zhí)行)

圖片

若服務(wù)器能夠連接到互聯(lián)網(wǎng),可參考在線部署步驟進(jìn)行Docker安裝,如無法連接到互聯(lián)網(wǎng),可參考離線部署步驟進(jìn)行Docker安裝。

4.2 在線部署步驟

安裝必要的軟件包

先安裝如下的軟件包:yum-utils,方便后續(xù)配置yum倉庫

圖片

配置docker-ce穩(wěn)定倉庫

圖片

注意,docker-ce.repo中也包含了nightly及test倉庫,默認(rèn)沒有啟用,可以使用 sudo yum-con-fig-manager --enable docker-ce-nightly 進(jìn)行啟用,一般無需啟用。

安裝最新版本的docker-ce

圖片

該命令默認(rèn)安裝了最新版本的docker-ce,安裝過程中如需校驗GPG key,輸入"y"確認(rèn)即可。

執(zhí)行完成后,Docker已經(jīng)成功安裝,但是還未啟動,建議先不要啟動,完成后續(xù)“部署完成后相關(guān)設(shè)置”后再啟動Docker。

安裝指定版本的docker-ce

首先使用如下命令查看docker-ce.repo中有哪些docker-ce版本。

圖片

第二列的部分字符串(冒號之后連接號之前)是版本號,例如可以使用如下命令安裝指定版本:

圖片

該命令會安裝指定版本的docker-ce,安裝中如需校驗GPG key,輸入"y"確認(rèn)即可。

執(zhí)行完成后,Docker已經(jīng)成功安裝,但是還未啟動,建議先不要啟動,完成后續(xù)“部署完成后相關(guān)設(shè)置”后再啟動Docker。

4.3 離線部署步驟

執(zhí)行完成后,Docker已經(jīng)成功安裝,但是還未啟動,建議先不要啟動,完成后續(xù)“部署完成后相關(guān)設(shè)置”后再啟動Docker。

官方步驟及存在的坑

安裝18.09.1版本:

官方給的文檔說明是,到Docker官網(wǎng)下載指定版本的rpm包 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/,然后再使用yum進(jìn)行安裝。

這種方式會存在一個問題,在完全離線的環(huán)境中,直接安裝docker官網(wǎng)下載的rpm包會缺少很多依賴,這些依賴需要手動去下載相應(yīng)的rpm包進(jìn)行升級或者安裝,非常麻煩。因此這里推薦以下方法進(jìn)行離線安裝。

下載所有的rpm包到本地

(1)在可以上網(wǎng)的環(huán)境(例如個人電腦),安裝一臺與離線環(huán)境機器相同操作系統(tǒng)的虛擬機,確保該虛擬機能夠訪問互聯(lián)網(wǎng),在安裝虛擬機操作系統(tǒng)時最好選擇最小化安裝。假設(shè)操作系統(tǒng)為CentOS。

(2)安裝完畢后,配置機器的yum源(建議配置阿里云的鏡像),先備份/etc/yum.repos.d/。

圖片

(3)然后配置CentOS-Base.repo及docker-ce.repo

圖片

(4)下載docker-ce相關(guān)的rpm包。

圖片

創(chuàng)建repo倉庫

在以上能聯(lián)網(wǎng)的虛機上安裝createrepo創(chuàng)建倉庫。

圖片

此時會在 /tmp/rpm_download 下生成repodata倉庫數(shù)據(jù)文件夾。

在離線環(huán)境進(jìn)行安裝

拷貝以上文件到離線環(huán)境的機器上,配置本地yum源進(jìn)行安裝。

將以上文件夾拷貝到離線環(huán)境的機器上,假設(shè)目錄也為/tmp/rpm_download

配置離線環(huán)境機器的本地yum源。

圖片

至此,完成了離線環(huán)境下docker的安裝。

4.4 部署完成后相關(guān)設(shè)置

配置非root用戶使用Docker命令

Docker daemon默認(rèn)監(jiān)聽一個Unix套接字(/var/run/docker.sock),這個Unix套接字默認(rèn)屬于用戶root,其他用戶如果要使用docker命令行與daemon通信,則必須使用sudo。

非root用戶每次都使用sudo比較麻煩,可以創(chuàng)建一個名為“docker”的組(安裝完docker后默認(rèn)就有),然后把非root用戶加入到docker組里面,就可以直接訪問Docker daemon了。

圖片

注意,如果已經(jīng)使用了sudo,然后再把該用戶加入到docker組,可能會因為目錄權(quán)限的問題導(dǎo)致報錯,使用以下命令修復(fù)即可。

圖片

配置Docker開機自啟動

CentOS 7中使用Systemd管理服務(wù),執(zhí)行以下命令即可。

圖片

配置默認(rèn)的日志驅(qū)動

Docker daemon的默認(rèn)日志驅(qū)動是json-file,可以把docker容器的標(biāo)注輸出、標(biāo)準(zhǔn)錯誤輸出到j(luò)son文件中,也可以支持其他日志驅(qū)動,例如local、journald,通過在/etc/docker/daemon.json中配置。

圖片

也可以在創(chuàng)建容器時,指定容器使用的日志驅(qū)動,例如:

圖片

配置Docker daemon監(jiān)聽TCP端口

默認(rèn)情況下,Docker
daemon監(jiān)聽一個本地的Unix
socket,接收來自本地docker客戶端的請求。如果要從遠(yuǎn)程訪問,比如docker-compose、docker-swarm之類的工具需要與Docker
daemon通信,可以讓Docker daemon監(jiān)聽一個本地的tcp端口。

CentOS系統(tǒng)下,修改文件/usr/lib/systemd/system/docker.service,修改如下內(nèi)容:

圖片

然后重啟docker。

圖片

使用 netstat -tnlp | grep 2375 可以看到dockerd進(jìn)程監(jiān)聽了2375端口。

配置鏡像下載加速

默認(rèn)情況下Docker會從國外的鏡像倉庫pull鏡像,可以使用國內(nèi)的倉庫鏡像服務(wù)器以加快pull image 的速度,同時增加下載的并發(fā)數(shù)。

CentOS系統(tǒng)下,修改docker配置文件/etc/docker/daemon.json。

圖片

然后重啟docker。

圖片

配置Docker的默認(rèn)網(wǎng)橋

Docker服務(wù)啟動后默認(rèn)會創(chuàng)建一個docker0網(wǎng)橋,它使用的默認(rèn)網(wǎng)段是172.xx.xx.xx,假設(shè)部署docker的機器也是用這個網(wǎng)段,則可能會有沖突,可以修改docker默認(rèn)的網(wǎng)段。

CentOS系統(tǒng)下,修改docker配置文件/etc/docker/daemon.json

圖片

然后重啟docker。

圖片

4.5 功能驗證

啟動Docker

圖片

查看docker狀態(tài)信息

圖片

運行hello-world容器

圖片

首次運行會從遠(yuǎn)程鏡像倉庫下載hello-world鏡像,并啟動一個容器,當(dāng)容器運行時會輸出一段信息,然后自動退出,通過 docker ps -a 可以查看。

Docker daemon的日志

systemd使用journalctl命令統(tǒng)一管理所有Unit的啟動日志,使用以下命令可以查看Docker daemon日志。

圖片

Docker卸載

圖片

5、本章小結(jié)

本文介紹了容器的部署過程和簡單的容器操作,分別說明了Docker和下一代容器工具Podman的區(qū)別。目前,Docker容器引擎還被很多的工程師廣泛使用,但是由于其本身的局限性,未來符合OCI標(biāo)準(zhǔn)的Podman還是會逐漸成為社區(qū)主流,而被廣大的開發(fā)人員、運維人員所接受。技術(shù)在不斷發(fā)展,新的工具在涌現(xiàn),我們可以根據(jù)相應(yīng)的新的容器工具鏈,構(gòu)建一個與
Docker 完全兼容,然而卻更加輕量、靈活和安全的容器環(huán)境。

參考引用:Podman 官網(wǎng)地址:https://podman.io/Podmanhttps://www.redhat.com/zh/topics/containers/whats-a-linux-containerhttps://baijiahao.baidu.com/s?id=1653853217702500436&wfr=spider&for=pchttps://www.redhat.com/zh/topics/containers/whats-a-linux-containerhttps://www.cnblogs.com/shoufu/p/11803010.html

責(zé)任編輯:龐桂玉 來源: 運維派
相關(guān)推薦

2022-01-17 10:07:05

PodmanDocker容器

2019-08-05 15:38:07

BitwardenPodman密碼管理器

2010-07-27 13:07:23

NFS Server

2019-08-26 19:24:55

Podman容器Linux

2022-03-28 18:59:02

DockerFlask深度學(xué)習(xí)

2010-08-03 11:41:24

Ubuntu NFS

2021-03-29 10:29:09

LinuxdockerLinux系統(tǒng)

2022-01-17 10:56:59

容器PodmanDocker

2019-08-21 16:15:01

DockerPodmanSkopeo

2022-06-26 09:29:41

PodmanDocker

2018-02-26 08:14:20

LinuxDocker容器

2010-12-21 14:21:51

2013-05-07 11:47:21

無線路由器安裝設(shè)置

2010-06-12 15:41:29

TCP IP通信協(xié)議

2022-12-08 19:27:38

2019-07-16 14:44:52

DockerMySQL操作系統(tǒng)

2024-01-19 16:35:23

2010-09-06 13:41:43

PPPPPTP

2022-07-28 15:10:34

UbuntuDocker

2009-12-01 14:21:05

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品.xx视频.xxtv | 亚洲iv一区二区三区 | 蜜桃在线视频 | 亚洲精品小视频在线观看 | 欧美精品日韩精品 | 日本在线视频中文字幕 | 国产欧美一区二区三区另类精品 | 国产精品久久久久婷婷二区次 | jlzzjlzz欧美大全| 在线国产视频 | 91精品国产综合久久小仙女图片 | ww 255hh 在线观看 | 国产精品九九九 | 亚洲一二三视频 | 精品国产乱码久久久久久图片 | 91精品一区 | 国内精品视频在线观看 | 欧美狠狠操 | 亚洲永久在线 | 亚洲 自拍 另类 欧美 丝袜 | 色婷婷久久久久swag精品 | 99精品在线 | 午夜小影院 | 日本一二三区在线观看 | 欧美精品 在线观看 | 日韩免费激情视频 | 精品区| 亚欧性视频 | 中国黄色毛片视频 | 精品一区二区在线观看 | 中文字幕国产第一页 | 亚洲一区在线播放 | 鸡毛片 | 亚洲精品一区二区 | 国产一二三区免费视频 | 91福利在线观看 | 中文字幕免费 | www.久久.com| 黄色一级视频免费 | 日日爱视频 | 国产精品久久av |