Docker容器化部署入門全面指南
什么是Docker
Docker是一個(gè)開源的容器化平臺(tái),可以將應(yīng)用程序及其依賴打包成標(biāo)準(zhǔn)化的容器,實(shí)現(xiàn)"一次構(gòu)建,到處運(yùn)行"。
核心概念:
- 鏡像(Image):只讀模板,包含運(yùn)行應(yīng)用所需的代碼、庫(kù)、依賴
- 容器(Container):鏡像的運(yùn)行實(shí)例,輕量級(jí)、可移植
- 倉(cāng)庫(kù)(Registry):存儲(chǔ)和分發(fā)鏡像的服務(wù),如Docker Hub
安裝Docker
macOS
1. 下載Docker Desktop
- 訪問官網(wǎng):https://www.docker.com/products/docker-desktop
- 根據(jù)芯片類型選擇對(duì)應(yīng)版本:
- Intel芯片:選擇"Mac with Intel chip"
- Apple芯片:選擇"Mac with Apple chip"
2. 安裝步驟
# 雙擊下載的.dmg文件 # 將Docker圖標(biāo)拖動(dòng)到Applications文件夾 # 從啟動(dòng)臺(tái)打開Docker Desktop # 首次啟動(dòng)需要輸入系統(tǒng)密碼授權(quán)
3. 驗(yàn)證安裝
# 查看版本 docker --version # 運(yùn)行測(cè)試容器 docker run hello-world # 應(yīng)該看到 "Hello from Docker!" 消息
Linux (Ubuntu)
1. 安裝Docker
# 更新包索引 sudo apt update # 安裝必要的依賴 sudo apt install apt-transport-https ca-certificates curl software-properties-common -y # 添加Docker官方GPG密鑰 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加Docker倉(cāng)庫(kù) echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新包索引 sudo apt update # 安裝Docker sudo apt install docker-ce docker-ce-cli containerd.io -y # 啟動(dòng)Docker服務(wù) sudo systemctl start docker sudo systemctl enable docker
2. 配置用戶權(quán)限(重要)
# 將當(dāng)前用戶添加到docker組,避免每次使用sudo sudo usermod -aG docker $USER # 使權(quán)限立即生效 newgrp docker # 或者注銷后重新登錄
3. 驗(yàn)證安裝
# 查看版本 docker --version # 測(cè)試運(yùn)行(無需sudo) docker run hello-world
Windows
1. 系統(tǒng)要求
- Windows 10/11 64位:專業(yè)版、企業(yè)版或教育版
- 必須啟用Hyper-V和WSL2
2. 啟用WSL2
# 以管理員身份運(yùn)行PowerShell wsl --install # 重啟電腦
3. 下載安裝Docker Desktop
- 訪問:https://www.docker.com/products/docker-desktop
- 下載Windows版本并安裝
- 安裝時(shí)選擇"Use WSL 2 instead of Hyper-V"
4. 驗(yàn)證安裝
docker --version docker run hello-world
基礎(chǔ)命令
鏡像操作
# 搜索鏡像 docker search nginx # 拉取鏡像 docker pull nginx:latest # 查看本地鏡像 docker images # 刪除鏡像 docker rmi nginx:latest
容器操作
# 運(yùn)行容器 docker run -d -p 8080:80 --name mynginx nginx # 參數(shù)說明: # -d: 后臺(tái)運(yùn)行 # -p: 端口映射 主機(jī)端口:容器端口 # --name: 容器名稱 # 查看運(yùn)行中的容器 docker ps # 查看所有容器(包括停止的) docker ps -a # 停止容器 docker stop mynginx # 啟動(dòng)容器 docker start mynginx # 重啟容器 docker restart mynginx # 刪除容器 docker rm mynginx # 查看容器日志 docker logs mynginx # 進(jìn)入容器 docker exec -it mynginx /bin/bash
開始實(shí)戰(zhàn)前的準(zhǔn)備
環(huán)境檢查
在開始實(shí)戰(zhàn)案例之前,請(qǐng)先確認(rèn)Docker環(huán)境配置正確:
# 1. 檢查Docker是否正常運(yùn)行 docker info # 如果提示權(quán)限錯(cuò)誤,Linux用戶需要執(zhí)行: # sudo usermod -aG docker $USER # newgrp docker # 2. 檢查Docker版本 docker --version docker-compose --version # 如果需要使用Docker Compose
端口檢查
避免端口沖突,檢查常用端口是否被占用:
# macOS/Linux檢查端口 lsof -i :8080 # 檢查8080端口 lsof -i :3000 # 檢查3000端口 lsof -i :3306 # 檢查3306端口(MySQL) # Windows檢查端口 netstat -ano | findstr :8080 netstat -ano | findstr :3000 netstat -ano | findstr :3306 # 如果端口被占用,可以: # 1. 修改映射端口,如 -p 8081:80 # 2. 關(guān)閉占用端口的進(jìn)程
清理已存在的容器
如果之前運(yùn)行過示例,先清理舊容器避免命名沖突:
# 停止并刪除可能存在的容器 docker rm -f mynginx myweb myapp mysql 2>/dev/null || true # 查看當(dāng)前運(yùn)行的容器 docker ps # 查看所有容器(包括停止的) docker ps -a
驗(yàn)證網(wǎng)絡(luò)連接
確??梢哉@$R像:
# 測(cè)試?yán)∫粋€(gè)小鏡像
docker pull alpine
# 如果速度慢,可以配置國(guó)內(nèi)鏡像源
# Docker Desktop: Settings → Docker Engine
# 添加:
# {
# "registry-mirrors": [
# "https://mirror.aliyuncs.com",
# "https://docker.mirrors.ustc.edu.cn"
# ]
# }實(shí)戰(zhàn)案例
案例1:運(yùn)行Nginx Web服務(wù)器
# 0. 清理可能存在的容器 docker rm -f myweb 2>/dev/null || true # 1. 拉取鏡像 docker pull nginx # 2. 創(chuàng)建本地HTML文件 mkdir -p ~/web echo "<h1>Hello Docker!</h1>" > ~/web/index.html # 3. 運(yùn)行容器并掛載目錄 docker run -d \ -p 8080:80 \ -v ~/web:/usr/share/nginx/html \ --name myweb \ nginx # 4. 驗(yàn)證容器運(yùn)行 docker ps | grep myweb echo "訪問 http://localhost:8080" # 5. 測(cè)試訪問 curl http://localhost:8080 # 預(yù)期輸出:<h1>Hello Docker!</h1> # 6. 查看日志 docker logs myweb
驗(yàn)證成功標(biāo)準(zhǔn):
- 瀏覽器訪問 http://localhost:8080 顯示 “Hello Docker!”
docker ps顯示myweb容器狀態(tài)為Upcurl命令返回HTML內(nèi)容
### 案例2:運(yùn)行MySQL數(shù)據(jù)庫(kù) ```bash # 0. 清理可能存在的容器 docker rm -f mysql 2>/dev/null || true # 1. 拉取鏡像 docker pull mysql:8.0 # 2. 運(yùn)行MySQL容器 docker run -d \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=mydb \ --name mysql \ mysql:8.0 # 3. 等待MySQL啟動(dòng)(約10-30秒) echo "等待MySQL啟動(dòng)..." sleep 15 # 4. 驗(yàn)證容器運(yùn)行 docker ps | grep mysql # 5. 查看啟動(dòng)日志 docker logs mysql | tail -20 # 6. 測(cè)試連接數(shù)據(jù)庫(kù) docker exec -it mysql mysql -uroot -p123456 -e "SHOW DATABASES;" # 應(yīng)該能看到mydb數(shù)據(jù)庫(kù) # 7. 進(jìn)入交互式命令行(可選) # docker exec -it mysql mysql -uroot -p123456
驗(yàn)證成功標(biāo)準(zhǔn):
docker ps顯示mysql容器狀態(tài)為Up且健康- 日志中顯示 “ready for connections”
SHOW DATABASES;命令能看到mydb數(shù)據(jù)庫(kù)- 可以成功執(zhí)行SQL查詢
### 案例3:運(yùn)行Node.js應(yīng)用
```bash
# 0. 清理環(huán)境
docker rm -f myapp 2>/dev/null || true
docker rmi myapp 2>/dev/null || true
rm -rf myapp # 確保目錄不存在
# 1. 創(chuàng)建項(xiàng)目目錄
mkdir myapp && cd myapp
# 2. 創(chuàng)建package.json
cat > package.json << 'EOF'
{
"name": "myapp",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"express": "^4.18.0"
}
}
EOF
# 3. 創(chuàng)建index.js
cat > index.js << 'EOF'
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello from Docker!');
});
app.get('/health', (req, res) => {
res.json({ status: 'OK', time: new Date() });
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
EOF
# 4. 創(chuàng)建Dockerfile
cat > Dockerfile << 'EOF'
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]
EOF
# 5. 構(gòu)建鏡像
docker build -t myapp .
echo "鏡像構(gòu)建完成"
# 6. 運(yùn)行容器
docker run -d -p 3000:3000 --name myapp myapp
# 7. 等待應(yīng)用啟動(dòng)
echo "等待應(yīng)用啟動(dòng)..."
sleep 3
# 8. 驗(yàn)證容器運(yùn)行
docker ps | grep myapp
# 9. 查看日志
docker logs myapp
# 10. 測(cè)試訪問
echo "測(cè)試主頁(yè):"
curl http://localhost:3000
echo -e "\n測(cè)試健康檢查:"
curl http://localhost:3000/health驗(yàn)證成功標(biāo)準(zhǔn):
- 瀏覽器訪問 http://localhost:3000 顯示 “Hello from Docker!”
- 訪問 http://localhost:3000/health 返回JSON狀態(tài)
docker ps顯示myapp容器狀態(tài)為Up- 日志顯示 “Server running on port 3000”
curl命令成功返回內(nèi)容
清理資源:
# 停止并刪除容器 docker rm -f myapp # 刪除鏡像 docker rmi myapp # 刪除項(xiàng)目目錄 cd .. && rm -rf myapp
Dockerfile詳解
# 基礎(chǔ)鏡像 FROM node:18-alpine # 設(shè)置工作目錄 WORKDIR /app # 復(fù)制依賴文件 COPY package*.json ./ # 安裝依賴 RUN npm install # 復(fù)制應(yīng)用代碼 COPY . . # 暴露端口 EXPOSE 3000 # 啟動(dòng)命令 CMD ["node", "index.js"]
指令說明:
FROM:指定基礎(chǔ)鏡像WORKDIR:設(shè)置工作目錄COPY:復(fù)制文件到鏡像RUN:執(zhí)行命令(構(gòu)建時(shí))EXPOSE:聲明端口CMD:容器啟動(dòng)命令
Docker Compose
管理多容器應(yīng)用的工具。
docker-compose.yml示例
version: '3.8'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mydb
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:Compose命令
# 啟動(dòng)所有服務(wù) docker-compose up -d # 停止所有服務(wù) docker-compose down # 查看服務(wù)狀態(tài) docker-compose ps # 查看日志 docker-compose logs -f
數(shù)據(jù)持久化
數(shù)據(jù)卷(Volume)
# 創(chuàng)建數(shù)據(jù)卷 docker volume create mydata # 使用數(shù)據(jù)卷 docker run -d -v mydata:/data --name mycontainer alpine # 查看數(shù)據(jù)卷 docker volume ls # 刪除數(shù)據(jù)卷 docker volume rm mydata
掛載目錄(Bind Mount)
# 掛載主機(jī)目錄 docker run -d -v /host/path:/container/path nginx
網(wǎng)絡(luò)管理
基礎(chǔ)網(wǎng)絡(luò)操作
# 創(chuàng)建網(wǎng)絡(luò) docker network create mynetwork # 在網(wǎng)絡(luò)中運(yùn)行容器 docker run -d --network mynetwork --name web nginx docker run -d --network mynetwork --name db mysql # 容器間可通過容器名通信 # web容器可以通過 db:3306 訪問mysql # 查看網(wǎng)絡(luò) docker network ls # 查看網(wǎng)絡(luò)詳情 docker network inspect mynetwork # 刪除網(wǎng)絡(luò) docker network rm mynetwork
實(shí)戰(zhàn):容器間通信演示
這個(gè)案例演示W(wǎng)eb應(yīng)用如何通過Docker網(wǎng)絡(luò)連接MySQL數(shù)據(jù)庫(kù):
# 0. 清理環(huán)境 docker rm -f web-app db-server 2>/dev/null || true docker network rm app-network 2>/dev/null || true # 1. 創(chuàng)建自定義網(wǎng)絡(luò) docker network create app-network # 2. 啟動(dòng)MySQL數(shù)據(jù)庫(kù)容器 docker run -d \ --network app-network \ --name db-server \ -e MYSQL_ROOT_PASSWORD=secret123 \ -e MYSQL_DATABASE=testdb \ mysql:8.0 # 3. 等待MySQL啟動(dòng) echo "等待MySQL啟動(dòng)..." sleep 15 # 4. 啟動(dòng)Web容器(使用Alpine作為演示) docker run -d \ --network app-network \ --name web-app \ alpine sleep 3600 # 5. 測(cè)試網(wǎng)絡(luò)連通性 echo "測(cè)試容器間網(wǎng)絡(luò)連通性:" # 5.1 測(cè)試DNS解析 docker exec web-app ping -c 3 db-server echo "DNS解析成功!" # 5.2 測(cè)試端口連通性(需要先安裝nc工具) docker exec web-app sh -c "apk add --no-cache netcat-openbsd && nc -zv db-server 3306" echo "端口3306連通!" # 6. 從Web容器連接MySQL數(shù)據(jù)庫(kù) # 安裝MySQL客戶端 docker exec web-app sh -c "apk add --no-cache mysql-client" # 連接數(shù)據(jù)庫(kù)并執(zhí)行查詢 docker exec web-app mysql -h db-server -uroot -psecret123 -e "SHOW DATABASES;" echo "數(shù)據(jù)庫(kù)連接成功!" # 7. 查看網(wǎng)絡(luò)詳情 docker network inspect app-network # 8. 查看容器的網(wǎng)絡(luò)配置 docker inspect web-app | grep -A 20 "Networks"
驗(yàn)證成功標(biāo)準(zhǔn):
ping db-server能夠成功解析并ping通nc -zv db-server 3306顯示端口開放- MySQL客戶端能夠連接并查詢數(shù)據(jù)庫(kù)
docker network inspect顯示兩個(gè)容器都在同一網(wǎng)絡(luò)中
重要說明:
- 同一網(wǎng)絡(luò)中的容器可以通過容器名互相訪問
- 不需要知道容器的IP地址
- 這是Docker推薦的容器間通信方式
- 容器重啟后IP可能變化,但容器名不變
清理資源:
docker rm -f web-app db-server docker network rm app-network
鏡像優(yōu)化技巧
1. 使用多階段構(gòu)建
# 構(gòu)建階段 FROM node:18 AS builder WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # 運(yùn)行階段 FROM node:18-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules CMD ["node", "dist/index.js"]
2. 減小鏡像體積
- 使用alpine基礎(chǔ)鏡像
- 合并RUN命令減少層數(shù)
- 刪除不必要的文件
- 使用.dockerignore排除文件
3. .dockerignore示例
node_modules npm-debug.log .git .gitignore README.md .env
常用技巧
清理Docker資源
# 刪除所有停止的容器 docker container prune # 刪除未使用的鏡像 docker image prune # 刪除未使用的數(shù)據(jù)卷 docker volume prune # 清理所有未使用資源 docker system prune -a
查看資源占用
# 查看容器資源使用 docker stats # 查看磁盤使用 docker system df
導(dǎo)出和導(dǎo)入鏡像
# 導(dǎo)出鏡像 docker save -o nginx.tar nginx:latest # 導(dǎo)入鏡像 docker load -i nginx.tar
最佳實(shí)踐
- 單一職責(zé):每個(gè)容器只運(yùn)行一個(gè)進(jìn)程
- 最小化層數(shù):合并RUN命令
- 使用緩存:將不常變化的指令放前面
- 安全性:不在鏡像中存儲(chǔ)敏感信息
- 健康檢查:添加HEALTHCHECK指令
- 日志管理:合理配置日志驅(qū)動(dòng)
- 資源限制:設(shè)置內(nèi)存和CPU限制
故障排查
# 查看容器詳細(xì)信息 docker inspect mynginx # 查看容器進(jìn)程 docker top mynginx # 實(shí)時(shí)日志 docker logs -f mynginx # 復(fù)制文件 docker cp mynginx:/etc/nginx/nginx.conf ./ # 查看端口映射 docker port mynginx
常見問題FAQ
Q1: Docker啟動(dòng)失敗或提示權(quán)限錯(cuò)誤
問題表現(xiàn):
permission denied while trying to connect to the Docker daemon socket
解決方案:
Linux系統(tǒng):
# 將當(dāng)前用戶添加到docker組 sudo usermod -aG docker $USER # 立即生效(或注銷重新登錄) newgrp docker # 驗(yàn)證 docker run hello-world
macOS/Windows:
- 確保Docker Desktop正在運(yùn)行
- 檢查系統(tǒng)托盤中的Docker圖標(biāo)
- 重啟Docker Desktop
Q2: 端口已被占用
問題表現(xiàn):
Error: bind: address already in use
解決方案:
# macOS/Linux - 查找占用端口的進(jìn)程 lsof -i :8080 # 或 sudo netstat -tulpn | grep :8080 # Windows - 查找占用端口的進(jìn)程 netstat -ano | findstr :8080 # 方法1: 關(guān)閉占用端口的進(jìn)程 kill -9 <PID> # 方法2: 使用不同的端口 docker run -p 8081:80 nginx # 改用8081端口
Q3: 容器無法啟動(dòng)或立即退出
診斷步驟:
# 1. 查看容器狀態(tài) docker ps -a # 2. 查看容器日志 docker logs 容器名 # 3. 查看詳細(xì)錯(cuò)誤信息 docker inspect 容器名 | grep -i error # 4. 嘗試交互式運(yùn)行查看錯(cuò)誤 docker run -it 鏡像名 /bin/sh
常見原因:
- 容器內(nèi)主進(jìn)程退出(CMD命令執(zhí)行完畢)
- 配置文件錯(cuò)誤
- 環(huán)境變量缺失
- 依賴服務(wù)未就緒
Q4: 鏡像拉取速度很慢
解決方案:配置國(guó)內(nèi)鏡像源
Docker Desktop:
打開 Settings → Docker Engine,添加:
{
"registry-mirrors": [
"https://mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}Linux系統(tǒng):
# 編輯配置文件
sudo vim /etc/docker/daemon.json
# 添加以下內(nèi)容
{
"registry-mirrors": [
"https://mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
# 重啟Docker服務(wù)
sudo systemctl daemon-reload
sudo systemctl restart dockerQ5: 容器數(shù)據(jù)丟失
問題:
容器刪除后數(shù)據(jù)消失
解決方案:使用數(shù)據(jù)卷持久化
# 方法1: 使用命名數(shù)據(jù)卷
docker volume create mydata
docker run -v mydata:/app/data nginx
# 方法2: 掛載主機(jī)目錄
docker run -v /host/path:/container/path nginx
# 方法3: 在docker-compose中使用
version: '3.8'
services:
app:
image: nginx
volumes:
- mydata:/data
volumes:
mydata:Q6: 無法訪問容器中的服務(wù)
檢查清單:
# 1. 確認(rèn)容器正在運(yùn)行 docker ps # 2. 檢查端口映射是否正確 docker port 容器名 # 3. 檢查容器內(nèi)服務(wù)是否啟動(dòng) docker logs 容器名 # 4. 進(jìn)入容器檢查 docker exec -it 容器名 /bin/sh # 在容器內(nèi)測(cè)試: curl localhost:端口 # 5. 檢查防火墻設(shè)置 # Linux sudo ufw status # macOS # 系統(tǒng)偏好設(shè)置 → 安全性與隱私 → 防火墻 # 6. 確認(rèn)使用正確的訪問地址 # localhost 或 127.0.0.1 或 宿主機(jī)IP
Q7: Docker占用磁盤空間過大
清理方案:
# 1. 查看磁盤占用 docker system df # 2. 刪除停止的容器 docker container prune # 3. 刪除未使用的鏡像 docker image prune -a # 4. 刪除未使用的數(shù)據(jù)卷 docker volume prune # 5. 刪除未使用的網(wǎng)絡(luò) docker network prune # 6. 一鍵清理所有未使用資源 docker system prune -a --volumes # 警告:這會(huì)刪除所有停止的容器、未使用的鏡像和數(shù)據(jù)卷 # 7. 定期清理構(gòu)建緩存 docker builder prune
Q8: 如何進(jìn)入正在運(yùn)行的容器
方法匯總:
# 方法1: 使用bash(推薦) docker exec -it 容器名 /bin/bash # 方法2: 使用sh(alpine鏡像) docker exec -it 容器名 /bin/sh # 方法3: 直接執(zhí)行命令 docker exec 容器名 ls -la /app # 方法4: 以root用戶進(jìn)入 docker exec -it -u root 容器名 /bin/bash # 退出容器但不停止 按 Ctrl+P 然后 Ctrl+Q
Q9: 容器時(shí)區(qū)不正確
解決方案:
# 方法1: 運(yùn)行時(shí)設(shè)置環(huán)境變量 docker run -e TZ=Asia/Shanghai nginx # 方法2: 在Dockerfile中設(shè)置 FROM nginx ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 方法3: 掛載主機(jī)時(shí)區(qū)文件 docker run -v /etc/localtime:/etc/localtime:ro nginx
Q10: 容器與宿主機(jī)網(wǎng)絡(luò)不通
排查步驟:
# 1. 檢查Docker網(wǎng)絡(luò)模式 docker inspect 容器名 | grep NetworkMode # 2. 測(cè)試容器訪問外網(wǎng) docker exec 容器名 ping 8.8.8.8 # 3. 測(cè)試容器訪問宿主機(jī) # 使用特殊DNS名稱訪問宿主機(jī) docker exec 容器名 ping host.docker.internal # 4. 使用host網(wǎng)絡(luò)模式(謹(jǐn)慎使用) docker run --network host nginx # 5. 檢查iptables規(guī)則(Linux) sudo iptables -L -n
快速參考:常用排查命令
# 查看容器詳細(xì)信息 docker inspect 容器名 # 查看容器日志(實(shí)時(shí)) docker logs -f 容器名 # 查看容器資源使用 docker stats 容器名 # 查看容器進(jìn)程 docker top 容器名 # 復(fù)制文件到/從容器 docker cp 容器名:/path/file ./ docker cp ./file 容器名:/path/ # 查看Docker系統(tǒng)信息 docker info # 查看Docker版本 docker version
總結(jié)
Docker核心工作流程:
- 編寫Dockerfile定義鏡像
- 使用
docker build構(gòu)建鏡像 - 使用
docker run運(yùn)行容器 - 使用
docker-compose管理多容器應(yīng)用
掌握這些基礎(chǔ)知識(shí),你就可以開始使用Docker進(jìn)行應(yīng)用容器化部署了。
到此這篇關(guān)于Docker容器化部署入門全面指南的文章就介紹到這了,更多相關(guān)docker容器化部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Centos8安裝docker報(bào)錯(cuò)(錯(cuò)誤提示:All?mirrors?were?tried)的問題
最近總是遇到“All?mirrors?were?tried”的報(bào)錯(cuò)信息,沒辦法,就rm?-rf?/etc/yum.repos.d/*?全部!刪了,下面小編通過本文給大家介紹下Centos8安裝docker報(bào)錯(cuò)(錯(cuò)誤提示:All?mirrors?were?tried)的問題及解決過程,感興趣的朋友一起看看吧2022-03-03
docker daemon遠(yuǎn)程連接設(shè)置詳解
本篇文章主要介紹了docker daemon遠(yuǎn)程連接設(shè)置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
使用Docker部署LMS輕量級(jí)音樂服務(wù)器的實(shí)現(xiàn)步驟
本文主要介紹了使用Docker部署LMS輕量級(jí)音樂服務(wù)器的實(shí)現(xiàn)步驟,為用戶提供了強(qiáng)大而靈活的音樂管理和播放體驗(yàn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
Docker網(wǎng)絡(luò)之部署redis集群方式
文章介紹了如何部署和測(cè)試Redis集群,包括創(chuàng)建配置文件、啟動(dòng)容器、查看集群信息以及模擬節(jié)點(diǎn)故障進(jìn)行測(cè)試2025-01-01
Docker安裝oracle數(shù)據(jù)庫(kù)最新版教程
這篇文章主要介紹了如何在Docker中安裝和配置Oracle?11g數(shù)據(jù)庫(kù),包括安裝Docker、拉取Oracle鏡像、創(chuàng)建容器、進(jìn)入容器配置、設(shè)置環(huán)境變量、創(chuàng)建軟連接、修改用戶密碼、重啟數(shù)據(jù)庫(kù)以及使用Navicat進(jìn)行連接測(cè)試,需要的朋友可以參考下2025-02-02
Docker網(wǎng)絡(luò)配置從基礎(chǔ)到高級(jí)實(shí)踐的完全指南
Docker?網(wǎng)絡(luò)系統(tǒng)允許容器之間、容器與主機(jī)以及外部網(wǎng)絡(luò)進(jìn)行安全可控的通信,理解?Docker?網(wǎng)絡(luò)是構(gòu)建可靠容器化應(yīng)用的關(guān)鍵,下面我們就來看看Docker基礎(chǔ)網(wǎng)絡(luò)配置和高級(jí)網(wǎng)絡(luò)配置的具體方法吧2025-05-05
docker自建rustdesk-server遠(yuǎn)程桌面的解決方案
RustDesk 是一款可以平替 TeamViewer 的開源軟件,旨在提供安全便捷的自建方案,這篇文章主要介紹了docker自建rustdesk-server遠(yuǎn)程桌面的解決方案,需要的朋友可以參考下2024-07-07

