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

Podman 和 Docker 的安裝、部署和設置

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

1、Linux 容器介紹

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

圖片

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

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

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

  • Docker 需要在你的系統上運行一個守護進程;
  • Docker 是以 root 身份在你的系統上運行該守護程序。

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

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

使用Podman,Skopeo和Buildah的新一代容器架構工具后,可以解決由于docker守護程序導致的啟動和安全問題。

2、Podman 和docker主要不同之處

docker 需要在我們的系統上運行一個守護進程(docker daemon),而podman 不需要。

  • 啟動容器的方式不同:docker cli 命令通過API跟 Docker Engine(引擎)交互告訴它我想創建一個container,然后docker Engine才會調用OCI container runtime(runc)來啟動一個container。這代表container的process(進程)不會是Docker CLI的child process(子進程),而是Docker Engine的child process。
  • Podman是直接給OCI containner runtime(runc)進行交互來創建container的,所以container process直接是podman的child process。
  • docker需要使用root用戶來創建容器,但是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,所以說經常使用Docker CLI的人使用Podman上手非??臁?/span>

運行一個容器

圖片

列出當前所有的容器

圖片

查看一個鏡像信息

圖片

查看容器運行的日志

圖片

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

圖片

圖片


4、Docker部署

4.1 部署準備工作

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

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

圖片

若服務器能夠連接到互聯網,可參考在線部署步驟進行Docker安裝,如無法連接到互聯網,可參考離線部署步驟進行Docker安裝。

4.2 在線部署步驟

安裝必要的軟件包

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

圖片

配置docker-ce穩定倉庫

圖片

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

安裝最新版本的docker-ce

圖片

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

執行完成后,Docker已經成功安裝,但是還未啟動,建議先不要啟動,完成后續“部署完成后相關設置”后再啟動Docker。

安裝指定版本的docker-ce

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

圖片

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

圖片

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

執行完成后,Docker已經成功安裝,但是還未啟動,建議先不要啟動,完成后續“部署完成后相關設置”后再啟動Docker。

4.3 離線部署步驟

執行完成后,Docker已經成功安裝,但是還未啟動,建議先不要啟動,完成后續“部署完成后相關設置”后再啟動Docker。

官方步驟及存在的坑

安裝18.09.1版本:

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

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

下載所有的rpm包到本地

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

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

圖片

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

圖片

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

圖片

創建repo倉庫

在以上能聯網的虛機上安裝createrepo創建倉庫。

圖片

此時會在 /tmp/rpm_download 下生成repodata倉庫數據文件夾。

在離線環境進行安裝

拷貝以上文件到離線環境的機器上,配置本地yum源進行安裝。

將以上文件夾拷貝到離線環境的機器上,假設目錄也為/tmp/rpm_download

配置離線環境機器的本地yum源。

圖片

至此,完成了離線環境下docker的安裝。

4.4 部署完成后相關設置

配置非root用戶使用Docker命令

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

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

圖片

注意,如果已經使用了sudo,然后再把該用戶加入到docker組,可能會因為目錄權限的問題導致報錯,使用以下命令修復即可。

圖片

配置Docker開機自啟動

CentOS 7中使用Systemd管理服務,執行以下命令即可。

圖片

配置默認的日志驅動

Docker daemon的默認日志驅動是json-file,可以把docker容器的標注輸出、標準錯誤輸出到json文件中,也可以支持其他日志驅動,例如local、journald,通過在/etc/docker/daemon.json中配置。

圖片

也可以在創建容器時,指定容器使用的日志驅動,例如:

圖片

配置Docker daemon監聽TCP端口

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

CentOS系統下,修改文件/usr/lib/systemd/system/docker.service,修改如下內容:

圖片

然后重啟docker。

圖片

使用 netstat -tnlp | grep 2375 可以看到dockerd進程監聽了2375端口。

配置鏡像下載加速

默認情況下Docker會從國外的鏡像倉庫pull鏡像,可以使用國內的倉庫鏡像服務器以加快pull image 的速度,同時增加下載的并發數。

CentOS系統下,修改docker配置文件/etc/docker/daemon.json。

圖片

然后重啟docker。

圖片

配置Docker的默認網橋

Docker服務啟動后默認會創建一個docker0網橋,它使用的默認網段是172.xx.xx.xx,假設部署docker的機器也是用這個網段,則可能會有沖突,可以修改docker默認的網段。

CentOS系統下,修改docker配置文件/etc/docker/daemon.json

圖片

然后重啟docker。

圖片

4.5 功能驗證

啟動Docker

圖片

查看docker狀態信息

圖片

運行hello-world容器

圖片

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

Docker daemon的日志

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

圖片

Docker卸載

圖片

5、本章小結

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

參考引用:Podman 官網地址: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

責任編輯:龐桂玉 來源: 運維派
相關推薦

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深度學習

2010-08-03 11:41:24

Ubuntu NFS

2021-03-29 10:29:09

LinuxdockerLinux系統

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

無線路由器安裝設置

2010-06-12 15:41:29

TCP IP通信協議

2022-12-08 19:27:38

2019-07-16 14:44:52

DockerMySQL操作系統

2010-09-06 13:41:43

PPPPPTP

2024-01-19 16:35:23

2009-12-01 14:21:05

2022-07-28 15:10:34

UbuntuDocker
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 7777精品伊人久久精品影视 | 99久久精品免费看国产小宝寻花 | 黄网站在线观看 | 精品视频一区二区三区 | 国产日韩欧美在线 | 正在播放国产精品 | 免费视频二区 | 国产欧美一区二区三区在线看 | 久久久久国产一区二区三区四区 | 成人精品国产一区二区4080 | 日韩中文一区二区三区 | 亚洲精品二区 | 男人天堂国产 | 欧美精品一区二区在线观看 | 国产精品欧美一区二区三区 | 欧美国产日韩在线观看 | 天天拍天天草 | 国产福利资源在线 | 成人h免费观看视频 | 欧美一区二区三区在线播放 | 欧美激情在线观看一区二区三区 | 国产午夜精品一区二区三区四区 | 美女黄视频网站 | 91麻豆精品国产91久久久更新资源速度超快 | julia中文字幕久久一区二区 | 91精品国产91久久久久久密臀 | 超碰人人人 | 一区二区三区视频在线 | 成年人在线观看视频 | 在线观看免费福利 | 久久免费观看视频 | 午夜电影网 | 欧美在线色 | 伊人伊人| 91久久综合 | 欧美国产中文 | 中文字幕日韩一区 | 欧美一区二区 | 国产高清视频 | 久久99网| 欧美综合一区二区三区 |