自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當(dāng)下運(yùn)行容器的三個(gè)步驟

開發(fā)
如何真正開始使用容器呢?從容器到 Kubernetes 的成長路徑是什么?另外,為什么有不止一條路徑?如你所料,最好的起點(diǎn)就是現(xiàn)在。

在本教程中,你將學(xué)習(xí)如何在一個(gè)“吊艙”中運(yùn)行兩個(gè)容器來托管一個(gè) WordPress 站點(diǎn)。

無論你是將其作為工作的一部分、未來的工作機(jī)會(huì)或者僅僅是出于對新技術(shù)的興趣,容器對很多人,即使是經(jīng)驗(yàn)豐富的系統(tǒng)管理員,可能是非常難以應(yīng)付的。那么如何真正開始使用容器呢?從容器到 Kubernetes 的成長路徑是什么?另外,為什么有不止一條路徑?如你所料,最好的起點(diǎn)就是現(xiàn)在。

1、了解容器

略一回憶,容器的開端可以追溯到早期 BSD 及其特殊的 chroot 監(jiān)獄,但讓我們直接跳到發(fā)展中期講起。

之前,Linux 內(nèi)核引入了 “控制組cgroup”,允許你能夠使用 “命名空間namespace” 來“標(biāo)記”進(jìn)程。當(dāng)你將進(jìn)程分組到一個(gè)命名空間時(shí),這些進(jìn)程的行為就像在命名空間之外的東西不存在一樣,這就像你把這些進(jìn)程放入某種容器中。當(dāng)然,這種容器是虛擬的,它位于計(jì)算機(jī)內(nèi)部,它和你操作系統(tǒng)的其余進(jìn)程使用相同的內(nèi)核、內(nèi)存和 CPU,但你用容器包含了這些進(jìn)程。

分發(fā)的預(yù)制容器僅包含運(yùn)行它所包含的應(yīng)用程序必須的內(nèi)容。使用容器引擎,如 Podman、Docker 或 CRI-O,你可以運(yùn)行一個(gè)容器化應(yīng)用程序,而無需進(jìn)行傳統(tǒng)意義上的安裝。容器引擎通常是跨平臺(tái)的,因此即使容器運(yùn)行在 Linux 上,你也可以在其他 Linux、MacOS 或 Windows 上啟動(dòng)容器。

更重要的是,當(dāng)需求量很大時(shí),你可以運(yùn)行同一應(yīng)用程序的多個(gè)容器。

現(xiàn)在你知道了什么是容器,下一步是運(yùn)行一個(gè)容器。

2、運(yùn)行一個(gè)容器

在運(yùn)行容器之前,你應(yīng)該有一個(gè)想要運(yùn)行它的理由。你可以編一個(gè),這有助于你對讓容器創(chuàng)建過程感興趣,這樣你就會(huì)受到鼓舞,真正去使用你所運(yùn)行的容器。畢竟,運(yùn)行容器但不使用它提供的應(yīng)用程序,只能證明你沒有注意到任何故障,但使用容器證明它可以工作。

我推薦從 WordPress 開始,它是一個(gè)很流行的 Web 應(yīng)用程序,容易使用,所以一旦容器運(yùn)行起來,你就可以測試使用它。雖然你可以輕松地配置一個(gè) WordPress 容器,但還是有很多配置選項(xiàng)可以引導(dǎo)你發(fā)現(xiàn)更多運(yùn)行容器的方式(例如運(yùn)行數(shù)據(jù)庫容器)以及容器如何通信。

我使用 Podman,它是一個(gè)友好、方便且無守護(hù)進(jìn)程的容器引擎。如果你沒有安裝 Podman,可以改用 Docker 命令。它們都是很棒的開源容器引擎,而且它們的語法是相同的(只需輸入 docker 而不是 podman)。因?yàn)?Podman 沒有守護(hù)進(jìn)程,所以它需要更多的配置,但為了這種運(yùn)行免 root、無守護(hù)進(jìn)程的容器的能力是值得的。

如果你使用 Docker,可以跳到下面的 運(yùn)行 WordPress 容器 小節(jié),否則,打開終端安裝并配置 Podman:

$ sudo dnf install podman

容器會(huì)產(chǎn)生許多進(jìn)程,通常只有 root 用戶有權(quán)創(chuàng)建數(shù)千個(gè)進(jìn)程 ID。創(chuàng)建一個(gè)名為 /etc/subuid 的文件,定義一個(gè)適當(dāng)?shù)钠鹗?UID 和大量合法的 PID,這樣就可以為你添加一些額外的進(jìn)程 ID:

seth:200000:165536

在名為 /etc/subgid 的文件中對你的組執(zhí)行相同的操作。在這個(gè)例子中,我的主要組是 staff(對你來說可能是 users,或者和你的用戶名一樣,這取決于你的系統(tǒng))。

staff:200000:165536

最后,確認(rèn)你的用戶可以管理很多命名空間:

    $ sysctl --all --pattern user_namespaces
user.max_user_namespaces = 28633

如果你的用戶無權(quán)管理超過 28,000 個(gè)命名空間,創(chuàng)建 /etc/sysctl.d/userns.conf 文件來增加數(shù)量并輸入:

user.max_user_namespaces=28633

運(yùn)行 WordPress 容器

現(xiàn)在,無論你使用的是 Podman 還是 Docker,你都可以從在線容器倉庫中下載 WordPress 容器并運(yùn)行它。你可以使用以下 Podman 命令完成所有這些操作:

    $ podman run --name mypress \
-p 8080:80 -d wordpress

給 Podman 一會(huì)時(shí)間來找到容器、從互聯(lián)網(wǎng)下載它,然后啟動(dòng)。

在收到終端返回提示符后,啟動(dòng) Web 瀏覽器,打開 localhost:8080。WordPress 正在運(yùn)行,等待你進(jìn)行設(shè)置。

WordPress 容器

不過,你很快就會(huì)遇到障礙,因?yàn)?WordPress 使用數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù),因此你需要為其提供一個(gè)數(shù)據(jù)庫。

在繼續(xù)之前,停止并刪除 WordPress 容器:

    $ podman stop mypress
$ podman rm mypress

3、在吊艙中運(yùn)行容器

正如名字所暗示的那樣,容器在設(shè)計(jì)上是獨(dú)立的。在容器中運(yùn)行的應(yīng)用程序不應(yīng)該與在容器外的應(yīng)用程序或基礎(chǔ)設(shè)施進(jìn)行交互。因此,當(dāng)一個(gè)容器需要另一個(gè)容器才能運(yùn)行時(shí),一種解決方案是將這兩個(gè)容器放在一個(gè)更大的容器中,稱為 “吊艙pod”。吊艙確保其容器可以共享重要的命名空間以便相互通信。

創(chuàng)建一個(gè)新的吊艙,為它提供一個(gè)名稱,以及希望能夠訪問的端口:

    $ podman pod create \
--name wp_pod \
--publish 8080:80

確認(rèn)吊艙存在:

    $ podman pod list
POD ID NAME STATUS INFRA ID # OF CONTAINERS
100e138a29bd wp_pod Created 22ace92df3ef 1

將容器添加到吊艙

現(xiàn)在你已經(jīng)為相互依賴的容器創(chuàng)建了一個(gè)吊艙,你可以通過指定一個(gè)運(yùn)行的吊艙來啟動(dòng)每個(gè)容器。

首先,啟動(dòng)一個(gè)數(shù)據(jù)庫容器。你可以創(chuàng)建自己的憑據(jù),只要在 WordPress 連接到數(shù)據(jù)庫時(shí)使用相同的憑據(jù)。

    $ podman run --detach \
--pod wp_pod \
--restart=always \
-e MYSQL_ROOT_PASSWORD="badpassword0" \
-e MYSQL_DATABASE="wp_db" \
-e MYSQL_USER="tux" \
-e MYSQL_PASSWORD="badpassword1" \
--name=wp_db mariadb

接下來,在同一個(gè)吊艙中啟動(dòng) WordPress 容器:

    $ podman run --detach \
--restart=always --pod=wp_pod \
-e WORDPRESS_DB_NAME="wp_db" \
-e WORDPRESS_DB_USER="tux" \
-e WORDPRESS_DB_PASSWORD="badpassword1" \
-e WORDPRESS_DB_HOST="127.0.0.1" \
--name mypress wordpress

現(xiàn)在啟動(dòng)你最喜歡的網(wǎng)絡(luò)瀏覽器并打開 localhost:8080。

這一次,設(shè)置會(huì)正常進(jìn)行。WordPress 會(huì)連接到數(shù)據(jù)庫,因?yàn)槟阍趩?dòng)容器時(shí)傳遞了這些環(huán)境變量。

WordPress 啟動(dòng)

創(chuàng)建用戶賬戶后,你可以登錄查看 WordPress 儀表板。

WordPress dashboard running in a container

下一步

你已經(jīng)創(chuàng)建了兩個(gè)容器,并在一個(gè)吊艙中運(yùn)行了它們。你現(xiàn)在已經(jīng)了解了如何在自己的服務(wù)器上運(yùn)行容器及服務(wù)。如果你想遷移到云,容器非常適合你。使用像 Kubernetes 和 OpenShift 這樣的工具,你可以自動(dòng)化啟動(dòng) 集群上的容器和吊艙。如果你正在考慮采取下一步行動(dòng),閱讀 Kevin Casey 的 3 個(gè)開始使用 Kubernetes 的方法,并嘗試他提到的 Minikube 教程。

責(zé)任編輯:未麗燕 來源: Linux中國
相關(guān)推薦

2021-08-19 11:22:22

深度學(xué)習(xí)編程人工智能

2017-08-01 08:41:29

Oracle開源容器

2022-10-12 14:33:15

數(shù)字化轉(zhuǎn)型網(wǎng)絡(luò)安全數(shù)據(jù)中心

2019-01-29 07:14:41

2021-01-15 10:51:32

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2010-08-02 23:40:42

Linux NFS

2019-05-05 10:11:27

數(shù)據(jù)中心效率DCIM

2010-09-29 16:04:54

Cisco IOS D

2018-01-17 08:36:31

云存儲(chǔ)策略步驟

2022-04-02 09:00:00

GitOps開發(fā)團(tuán)隊(duì)

2010-11-17 10:39:29

職場

2009-08-21 17:48:13

C#讀取文件信息

2010-10-09 21:42:13

SNMP網(wǎng)絡(luò)安全

2011-05-19 13:49:09

2024-04-25 12:40:09

云安全云遷移

2022-04-15 09:30:00

Kubernetes云計(jì)算多云

2021-10-12 09:23:29

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2010-06-28 13:40:22

SNMP協(xié)議服務(wù)

2010-11-15 09:56:30

2020-07-20 09:20:44

云計(jì)算云安全數(shù)據(jù)
點(diǎn)贊
收藏

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