- Docker 教程
- Docker - 首頁
- Docker - 概述
- Docker - 在Linux上安裝
- Docker - 安裝
- Docker - Hub
- Docker - 映象
- Docker - 容器
- Docker - 映象倉庫
- Docker - Compose
- Docker - 使用容器
- Docker - 架構
- Docker - 層
- Docker - 容器與主機
- Docker - 配置
- Docker - 容器與Shell
- Docker - Dockerfile
- Docker - 構建檔案
- Docker - 公共倉庫
- Docker - 管理埠
- Docker - Web伺服器
- Docker - 命令
- Docker - 容器連結
- Docker - 資料儲存
- Docker - 卷
- Docker - 網路
- Docker - 安全
- Docker - 工具箱
- Docker - 雲
- Docker - 構建雲
- Docker - 日誌
- Docker - 持續整合
- Docker - Kubernetes架構
- Docker - Kubernetes的工作原理
- Docker - 生成式AI
- Docker - 託管
- Docker - 最佳實踐
- Docker 服務設定
- Docker - Node.js設定
- Docker - MongoDB設定
- Docker - NGINX設定
- Docker - ASP.Net設定
- Docker - MySQL設定
- Docker - Go設定
- Docker - Rust設定
- Docker - Apache設定
- Docker - MariaDB設定
- Docker - Jupyter設定
- Docker - Portainer設定
- Docker - Rstudio設定
- Docker - Plex設定
- Docker 設定 - Flame
- Docker 設定 - PostgreSQL
- Docker 設定 - Mosquitto
- Docker 設定 - Grafana
- Docker 設定 - Nextcloud
- Docker 設定 - Pawns
- Docker 設定 - Ubuntu
- Docker 設定 - RabbitMQ
- Docker - Python設定
- Docker - Java設定
- Docker - Redis設定
- Docker - Alpine設定
- Docker - BusyBox設定
- Docker 設定 - Traefik
- Docker 設定 - WordPress
- Docker 有用資源
- Docker - 快速指南
- Docker - 有用資源
- Docker - 討論
Docker - Ubuntu設定
Ubuntu是一個非常流行的作業系統,基於Linux,以其穩定性、安全措施和充滿熱情的龐大社群支援而聞名。Ubuntu擁有大量的應用程式,範圍從伺服器管理和桌面計算到嵌入式系統/物聯網。
Docker是一個開源平臺,用於將應用程式及其依賴項容器化到稱為容器的可管理單元中。這些容器保證一致的環境、可移植性、隔離性,並使部署和應用程式管理變得容易得多。
在本章中,讓我們學習將Ubuntu作業系統Docker化到容器中的各種方法。
Docker化Ubuntu的先決條件
在開始Docker化Ubuntu之前,請確保您具備以下先決條件。
- 已安裝Docker − 如果尚未安裝,您可以從https://www.docker.com/下載並安裝適用於您的作業系統的Docker。
- Ubuntu映象 − 我們將使用Docker映象來容器化Ubuntu。Docker Hub登錄檔(https://hub.docker.com/)上有大量的官方Ubuntu映象。
方法1:拉取Ubuntu映象並執行Ubuntu容器
讓我們瞭解如何拉取Ubuntu映象並執行Ubuntu容器−
拉取Docker映象
我們可以直接從Docker Hub登錄檔拉取預構建的Ubuntu映象。我們可以使用docker pull命令來拉取映象。
例如,我們可以使用以下命令來拉取最新的Ubuntu映象:
$ docker pull ubuntu:latest
您可以透過列出本地機器上的所有Docker映象來驗證映象是否已成功拉取。
$ docker images
執行Ubuntu容器
現在我們已經拉取了Ubuntu Docker映象,我們可以使用docker run命令使用此映象啟動一個容器。
我們可以使用諸如容器名稱(--name)、是否在後臺執行(-d)以及是否需要公開任何必要的埠(-p)之類的選項。
$ docker run -it --name my-ubuntu-container ubuntu:latest
訪問Ubuntu Shell
我們在命令中使用的-it標誌允許我們透過使其互動並附加終端來訪問容器的bash。這樣,我們可以直接訪問容器中的Ubuntu shell。
方法2:建立Dockerfile並構建自定義映象
讓我們瞭解如何建立Dockerfile並構建自定義映象−
建立Dockerfile
Dockerfile只是一個文字文件,其中包含用於構建自定義Docker映象的所有指令。它包含定義基礎映象、要安裝的軟體包和要執行的命令的指令。
建立一個名為Dockerfile的檔案,並將以下指令貼上到其中。
FROM ubuntu:latest # Install packages (replace with your desired packages) RUN apt-get update && apt-get install -y nginx # Expose a port (if necessary) EXPOSE 80 # Command to run when the container starts CMD ["nginx", "-g", "daemon off;"]
構建Docker映象
接下來,導航到建立Dockerfile的目錄,開啟終端,並使用docker build命令根據Dockerfile建立映象。
$ docker build -t my-ubuntu-image .
讓我們透過列出所有映象來驗證映象。
$ docker images
執行容器
現在我們的映象已準備就緒,讓我們根據此映象建立一個容器。
$ docker run -itd --name my-ubuntu-container my-ubuntu-image
這將在分離(後臺)模式下啟動容器。
如果我們使用命令“docker container ls”列出所有容器,我們可以看到我們的容器正在執行。
讓我們使用以下命令將shell附加到此容器。
$ docker exec -it my-ubuntu-container /bin/bash
方法3:使用Docker Compose
Docker Compose是一個非常有用且廣泛使用的工具,您可以使用它來定義和執行多容器Docker應用程式。藉助它,您可以簡化管理多個容器的過程,這對於複雜的應用程式通常是必需的。
Docker Compose檔案
建立一個名為docker-compose.yml的檔案,並將以下內容貼上進去。
version: '3.8'
services:
ubuntu1:
image: ubuntu:latest
command: /bin/bash
ubuntu2:
image: ubuntu:latest
command: /bin/bash
ubuntu3:
image: ubuntu:latest
command: /bin/bash
說明
- version − '3.8':指定Docker Compose版本。
- services − 定義要建立的服務(容器)。
- ubuntu1, ubuntu2, ubuntu3 − 這些是各個容器的名稱。
- image − ubuntu:latest:將每個容器的基礎映象設定為最新的Ubuntu映象。
- command − bash:指定在容器內執行的命令。在本例中,它是一個Bash shell。
構建和執行
讓我們使用以下命令來構建映象並在後臺執行容器。
$ docker-compose up -d
讓我們列出所有正在執行的容器以進行驗證。
$ docker container ls -a
結論
透過Docker化Ubuntu,您可以為基於Ubuntu的應用程式建立隔離且可移植的環境。在本章中,我們瞭解了建立Ubuntu容器的不同方法,無論是使用Dockerfile、Docker Compose還是直接拉取預構建的映象。
Docker帶來了一個強大的工具集,用於管理和部署您的應用程式。您可以輕鬆地按照本教程中的步驟來Docker化您的Ubuntu應用程式,並利用容器化的優勢。
關於Docker化Ubuntu的常見問題
在本節中,我們收集了一組關於Docker化Ubuntu的常見問題及其答案。
1. 如何在Docker化的Ubuntu例項中安裝其他軟體包?
要在Ubuntu中安裝軟體包,我們可以使用容器內設定的apt包管理器。將相關的包安裝命令包含在您的Dockerfile中,或者從容器內以互動方式執行它們。確保這些包與您的基礎映象中使用的Ubuntu版本相容。
2. 如何為Docker化的Ubuntu例項配置網路?
我們可以使用Docker的網路功能或透過配置Ubuntu容器本身的網路來配置Ubuntu容器中的網路。您可以考慮使用網路別名、埠對映或連線到外部網路。
3. 如何在Docker化的Ubuntu例項中持久化資料?
您可以使用Docker捲來持久化Ubuntu容器中的資料。我們可以將卷掛載到容器內的目錄,這些目錄可以儲存在容器停止時要保留的資料。您還可以根據您的要求配置卷以確保資料永續性。