最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker Compose與私有倉庫部署指南

 更新時間:2025年12月12日 09:36:30   作者:士別三日。  
本文介紹了DockerCompose和Harbor在現(xiàn)代應用開發(fā)中的應用,通過WordPress實戰(zhàn)展示了如何使用DockerCompose進行單機編排,并通過Harbor實現(xiàn)企業(yè)級私有倉庫的管理,感興趣的朋友跟隨小編一起看看吧

引言

在現(xiàn)代應用開發(fā)和部署中,容器化技術(shù)已經(jīng)成為標配。然而,隨著微服務(wù)架構(gòu)的普及,單一容器已難以滿足復雜應用的需求。本文將帶領(lǐng)大家深入掌握Docker Compose編排工具和企業(yè)級私有倉庫Harbor,實現(xiàn)從單體應用到復雜服務(wù)的高效管理與部署。

一、Docker Compose:單機編排的利器

1. Docker Compose在容器編排生態(tài)中的位置

關(guān)鍵觀點

  • Docker Compose:學習門檻低,適合入門和快速原型開發(fā)
  • Kubernetes:功能強大但復雜,需要專門團隊維護
  • 漸進式路徑:Compose → Kubernetes是最佳學習路徑

2. Docker Compose快速安裝指南

# 1. 下載Docker Compose二進制文件(國內(nèi)加速)
$ curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` \
  -o /usr/local/bin/docker-compose
# 2. 賦予執(zhí)行權(quán)限
$ chmod +x /usr/local/bin/docker-compose
# 3. 驗證安裝
$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c

3. WordPress實戰(zhàn)部署:從零到一

3.1 項目結(jié)構(gòu)規(guī)劃

wordpress-site/
├── docker-compose.yml          # 編排配置文件
├── .env                        # 環(huán)境變量文件(敏感信息)
├── db_data/                    # MySQL數(shù)據(jù)目錄
│   └── [自動創(chuàng)建]
├── web_data/                   # WordPress文件目錄
│   └── [自動創(chuàng)建]
└── nginx-conf/                 # Nginx配置(可選擴展)
    └── wordpress.conf

3.2 完整的docker-compose.yml配置

# docker-compose.yml
version: '3.8'
# 定義網(wǎng)絡(luò)(創(chuàng)建獨立的橋接網(wǎng)絡(luò))
networks:
  wordpress-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16
# 定義數(shù)據(jù)卷(持久化存儲)
volumes:
  db_data:
  web_data:
# 定義服務(wù)
services:
  # MySQL數(shù)據(jù)庫服務(wù)
  db:
    image: mysql:5.7
    container_name: wp-mysql
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/mysql
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql  # 初始化SQL腳本
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_INITDB_SKIP_TZINFO: 1
    networks:
      - wordpress-network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10
    command: 
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --max_allowed_packet=64M
  # WordPress應用服務(wù)
  wordpress:
    image: wordpress:php7.4-apache
    container_name: wp-app
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    volumes:
      - web_data:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini  # PHP配置
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: ${DB_USER}
      WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
      WORDPRESS_DB_NAME: ${DB_NAME}
      WORDPRESS_TABLE_PREFIX: wp_
      WORDPRESS_CONFIG_EXTRA: |
        define('WP_SITEURL', 'http://${DOMAIN}');
        define('WP_HOME', 'http://${DOMAIN}');
        define('WP_DEBUG', ${WP_DEBUG});
        define('WP_MEMORY_LIMIT', '256M');
    networks:
      wordpress-network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wordpress.rule=Host(`${DOMAIN}`)"
      - "traefik.http.services.wordpress.loadbalancer.server.port=80"
  # Nginx反向代理(可選)
  nginx:
    image: nginx:alpine
    container_name: wp-nginx
    restart: unless-stopped
    depends_on:
      - wordpress
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx-conf:/etc/nginx/conf.d
      - ./ssl:/etc/nginx/ssl
      - web_data:/var/www/html:ro
    networks:
      - wordpress-network

3.3 環(huán)境變量配置(.env文件)

# 數(shù)據(jù)庫配置
DB_ROOT_PASSWORD=R00t!Passw0rd#2024
DB_NAME=wordpress_db
DB_USER=wp_user
DB_PASSWORD=WpUser!Secure#2024
# WordPress配置
DOMAIN=localhost  # 生產(chǎn)環(huán)境修改為實際域名
WP_DEBUG=false
# 網(wǎng)絡(luò)配置
NETWORK_SUBNET=172.20.0.0/16
# 時區(qū)設(shè)置
TZ=Asia/Shanghai

3.4 一鍵部署與管理

#!/bin/bash
# deploy-wordpress.sh - WordPress一站式部署腳本
set -e
echo "?? 開始部署WordPress..."
# 1. 創(chuàng)建項目目錄
PROJECT_DIR="~/wordpress-site"
mkdir -p $PROJECT_DIR/{db_data,web_data,nginx-conf,ssl}
cd $PROJECT_DIR
# 2. 生成配置文件
if [ ! -f docker-compose.yml ]; then
    echo "生成docker-compose.yml..."
    # 這里可以加入自動生成邏輯
fi
# 3. 檢查環(huán)境變量
if [ ! -f .env ]; then
    echo " 警告: 未找到.env文件"
    cp .env.example .env
    echo "請編輯.env文件配置環(huán)境變量"
    nano .env
fi
# 4. 啟動服務(wù)
echo "啟動Docker Compose服務(wù)..."
docker-compose up -d
# 5. 健康檢查
echo "等待服務(wù)啟動..."
sleep 10
for service in db wordpress; do
    echo "檢查 $service 狀態(tài)..."
    if docker-compose ps $service | grep -q "Up"; then
        echo " $service 啟動成功"
    else
        echo " $service 啟動失敗"
        docker-compose logs $service
        exit 1
    fi
done
# 6. 輸出訪問信息
echo ""
echo "======================================"
echo " WordPress部署完成!"
echo ""
echo " 訪問地址: http://localhost"
echo " 管理后臺: http://localhost/wp-admin"
echo ""
echo " 服務(wù)狀態(tài):"
docker-compose ps
echo ""
echo " 查看日志: docker-compose logs -f"
echo " 停止服務(wù): docker-compose down"
echo "======================================"

3.5 Docker Compose管理命令大全

#  基礎(chǔ)操作
dc up -d              # 啟動服務(wù)(后臺運行)
dc down               # 停止并移除服務(wù)
dc ps                 # 查看服務(wù)狀態(tài)
dc logs -f            # 跟蹤日志輸出
#  服務(wù)管理
dc start              # 啟動已停止的服務(wù)
dc stop               # 停止運行中的服務(wù)
dc restart            # 重啟服務(wù)
dc pause              # 暫停服務(wù)
dc unpause            # 恢復服務(wù)
#  監(jiān)控與調(diào)試
dc top                # 查看容器進程
dc exec <service> sh  # 進入容器Shell
dc config             # 驗證配置語法
dc port <service>     # 查看端口映射
#  擴展與維護
dc up --scale web=3   # 擴展服務(wù)實例(web服務(wù)3個副本)
dc build              # 重新構(gòu)建鏡像
dc pull               # 拉取最新鏡像
dc images             # 查看項目相關(guān)鏡像
#  清理維護
dc down -v            # 停止并刪除數(shù)據(jù)卷
dc rm -f              # 強制移除容器
dc down --rmi all     # 停止并刪除所有鏡像

二、Docker私有倉庫:從Registry到Harbor

1. 私有倉庫生態(tài)系統(tǒng)對比

2. Docker原生Registry快速搭建

2.1 基礎(chǔ)安裝與配置

#!/bin/bash
# setup-registry.sh - Docker Registry快速安裝
# 1. 創(chuàng)建數(shù)據(jù)目錄
mkdir -p /data/docker-registry
chmod 755 /data/docker-registry
# 2. 創(chuàng)建認證文件(可選)
mkdir -p /auth
docker run --entrypoint htpasswd registry:2 \
  -Bbn admin "SecurePass123!" > /auth/htpasswd
# 3. 啟動Registry容器
docker run -d \
  --name=private-registry \
  --restart=unless-stopped \
  -p 5000:5000 \
  -v /data/docker-registry:/var/lib/registry \
  -v /auth:/auth \
  -e REGISTRY_AUTH=htpasswd \
  -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -e REGISTRY_STORAGE_DELETE_ENABLED=true \
  registry:2
# 4. 客戶端配置(所有要使用該倉庫的機器)
cat << EOF > /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.1.100:5000"],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF
# 5. 重啟Docker服務(wù)
systemctl daemon-reload
systemctl restart docker
# 6. 驗證安裝
curl -X GET http://192.168.1.100:5000/v2/_catalog
echo "Registry安裝完成!"

2.2 鏡像推送到私有倉庫

# 1. 登錄到私有倉庫
docker login 192.168.1.100:5000
Username: admin
Password: SecurePass123!
# 2. 給鏡像打標簽(關(guān)鍵步驟?。?
# 格式:docker tag SOURCE_IMAGE[:TAG] REGISTRY_HOST:PORT/REPOSITORY[:TAG]
docker tag nginx:latest 192.168.1.100:5000/library/nginx:latest
docker tag mysql:8.0 192.168.1.100:5000/apps/mysql:8.0
# 3. 推送到倉庫
docker push 192.168.1.100:5000/library/nginx:latest
docker push 192.168.1.100:5000/apps/mysql:8.0
# 4. 查看倉庫內(nèi)容
curl -X GET http://192.168.1.100:5000/v2/_catalog
# 輸出:{"repositories":["library/nginx","apps/mysql"]}
curl -X GET http://192.168.1.100:5000/v2/library/nginx/tags/list
# 輸出:{"name":"library/nginx","tags":["latest"]}
# 5. 從私有倉庫拉取
docker pull 192.168.1.100:5000/library/nginx:latest
# 6. 清理本地緩存
docker image prune -f

3. Harbor企業(yè)級私有倉庫

3.1 Harbor架構(gòu)概覽

3.2 Harbor安裝部署

3.2.1 環(huán)境準備

#!/bin/bash
# prepare-harbor-env.sh
echo " 檢查系統(tǒng)環(huán)境..."
# 1. 檢查Docker和Docker Compose
if ! command -v docker &> /dev/null; then
    echo " Docker未安裝,開始安裝..."
    curl -fsSL https://get.docker.com | bash -s docker
fi
if ! command -v docker-compose &> /dev/null; then
    echo " Docker Compose未安裝,開始安裝..."
    curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
      -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
fi
# 2. 檢查端口占用
PORTS=(80 443 4443)
for port in "${PORTS[@]}"; do
    if ss -tulpn | grep ":${port}" > /dev/null; then
        echo "  警告: 端口 ${port} 已被占用"
    fi
done
# 3. 檢查存儲空間(至少20GB)
AVAILABLE_SPACE=$(df -BG / | tail -1 | awk '{print $4}' | tr -d 'G')
if [ "$AVAILABLE_SPACE" -lt 20 ]; then
    echo " 磁盤空間不足,至少需要20GB"
    exit 1
fi
# 4. 創(chuàng)建目錄結(jié)構(gòu)
mkdir -p /data/harbor/{data,cert,ca-download}
chmod -R 755 /data/harbor
echo " 環(huán)境檢查通過"

3.2.2 離線安裝

#!/bin/bash
# install-harbor-offline.sh
HARBOR_VERSION="v2.5.1"
INSTALL_DIR="/opt/harbor"
DATA_DIR="/data/harbor"
echo " 開始安裝Harbor ${HARBOR_VERSION}..."
# 1. 下載離線安裝包
cd /tmp
wget https://github.com/goharbor/harbor/releases/download/${HARBOR_VERSION}/harbor-offline-installer-${HARBOR_VERSION}.tgz
# 2. 解壓安裝包
tar xzf harbor-offline-installer-${HARBOR_VERSION}.tgz -C /opt
mv /opt/harbor ${INSTALL_DIR}
# 3. 配置harbor.yml
cp harbor.yml.tmpl harbor.yml
cat > harbor.yml <<-EOF
hostname: harbor.local
http:
  port: 80
https:
  port: 443
  certificate: /data/cert/harbor.crt
  private_key: /data/cert/harbor.key
harbor_admin_password: Harbor12345
database:
  password: root123
data_volume: /data
clair:
  updaters_interval: 12
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.5.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - clair
EOF
# 4. 執(zhí)行安裝
./install.sh
# 5. 驗證安裝
sleep 30
echo "檢查Harbor服務(wù)狀態(tài)..."
docker-compose ps
echo " Harbor安裝完成!"
echo " 訪問地址: https://harbor.local"
echo " 用戶名: admin"
echo " 密碼: Harbor12345"

3.3 Harbor日常使用

#!/bin/bash
# push-to-harbor-with-scan.sh
HARBOR_HOST="harbor.local"
PROJECT="myapp"
IMAGE="nginx:1.21"
TAG="v1.0"
echo " 登錄到Harbor..."
docker login $HARBOR_HOST -u admin -p Harbor12345
echo "  為鏡像打標簽..."
docker tag $IMAGE $HARBOR_HOST/$PROJECT/nginx:$TAG
echo "  推送鏡像到Harbor..."
docker push $HARBOR_HOST/$PROJECT/nginx:$TAG
echo " 觸發(fā)安全掃描..."
# 使用Harbor API觸發(fā)掃描
curl -X POST \
  -H "Authorization: Basic $(echo -n 'admin:Harbor12345' | base64)" \
  "https://$HARBOR_HOST/api/v2.0/projects/$PROJECT/repositories/nginx/artifacts/$TAG/scan" \
  -k
echo " 等待掃描完成..."
sleep 30
echo " 獲取掃描結(jié)果..."
curl -X GET \
  -H "Authorization: Basic $(echo -n 'admin:Harbor12345' | base64)" \
  "https://$HARBOR_HOST/api/v2.0/projects/$PROJECT/repositories/nginx/artifacts/$TAG/additions/vulnerabilities" \
  -k | jq '.'
echo " 鏡像推送完成"

三、實戰(zhàn)對比:Compose + Harbor完整方案

1. 企業(yè)級WordPress部署方案

2. 完整的docker-compose.yml(生產(chǎn)就緒)

# production-wordpress.yml
version: '3.8'
x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"
x-common-labels: &common-labels
  com.company.project: "wordpress"
  com.company.environment: "production"
services:
  # 使用Harbor中的鏡像
  mysql:
    image: harbor.company.com/infra/mysql:8.0
    container_name: mysql-production
    restart: unless-stopped
    logging: *default-logging
    labels: *common-labels
    volumes:
      - mysql_data:/var/lib/mysql
      - ./config/mysql/my.cnf:/etc/mysql/conf.d/my.cnf:ro
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER_FILE: /run/secrets/mysql_user
      MYSQL_PASSWORD_FILE: /run/secrets/mysql_password
    secrets:
      - mysql_root_password
      - mysql_user
      - mysql_password
    networks:
      - backend
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 30s
      timeout: 10s
      retries: 3
  wordpress:
    image: harbor.company.com/apps/wordpress:6.0
    container_name: wordpress-production
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy
    logging: *default-logging
    labels: *common-labels
    volumes:
      - wp_content:/var/www/html/wp-content
      - uploads:/var/www/html/wp-content/uploads
      - ./config/php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:ro
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER_FILE: /run/secrets/mysql_user
      WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_password
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: wp_
      WORDPRESS_DEBUG: "false"
      WORDPRESS_CONFIG_EXTRA: |
        define('WP_HOME', 'https://${DOMAIN}');
        define('WP_SITEURL', 'https://${DOMAIN}');
        define('FORCE_SSL_ADMIN', true);
        define('WP_CACHE', true);
    secrets:
      - mysql_user
      - mysql_password
    networks:
      - backend
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wordpress.rule=Host(`${DOMAIN}`)"
      - "traefik.http.routers.wordpress.entrypoints=websecure"
      - "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
  redis:
    image: harbor.company.com/infra/redis:7.0-alpine
    container_name: redis-cache
    restart: unless-stopped
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data
    networks:
      - backend
  # 反向代理(生產(chǎn)環(huán)境推薦Traefik)
  traefik:
    image: traefik:v2.9
    container_name: traefik
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config/traefik/traefik.yml:/etc/traefik/traefik.yml:ro
      - ./config/traefik/config.yml:/etc/traefik/config.yml:ro
      - acme_data:/acme
    networks:
      - proxy
secrets:
  mysql_root_password:
    file: ./secrets/mysql_root_password.txt
  mysql_user:
    file: ./secrets/mysql_user.txt
  mysql_password:
    file: ./secrets/mysql_password.txt
volumes:
  mysql_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /data/mysql
  wp_content:
  uploads:
  redis_data:
  acme_data:
networks:
  backend:
    driver: bridge
  proxy:
    external: true

四、綜合對比與選擇指南

1. 技術(shù)選型決策矩陣

2. 技術(shù)棧對比表

維度

Docker Compose + Registry

Docker Compose + Harbor

Kubernetes + Harbor

學習曲線?

??☆☆☆ (簡單)

???☆☆ (中等)

????? (陡峭)

部署速度?

????? (分鐘級)

????☆ (小時級)

??☆☆☆ (天級)

功能完整性?

??☆☆☆ (基礎(chǔ))

????☆ (完善)

????? (全面)

擴展性?

??☆☆☆ (單機)

???☆☆ (有限集群)

????? (無限擴展)

維護成本?

?☆☆☆☆ (很低)

??☆☆☆ (較低)

????? (很高)

適合場景?

個人項目/原型開發(fā)

中小企業(yè)生產(chǎn)環(huán)境

大型企業(yè)/云原生轉(zhuǎn)型

結(jié)語

Docker Compose和私有倉庫是現(xiàn)代容器化技術(shù)棧中的重要組成部分。通過本文的學習,你應該掌握了:

 Docker Compose核心用法:從簡單的WordPress部署到生產(chǎn)就緒的配置

 私有倉庫的選擇與應用:從基礎(chǔ)的Registry到企業(yè)級的Harbor

 鏡像生命周期管理:構(gòu)建、標簽、推送、安全掃描的全流程

 漸進式演進策略:從小規(guī)模起步到企業(yè)級架構(gòu)的平滑升級路徑

記住技術(shù)選擇的黃金法則:沒有最好的技術(shù),只有最適合的技術(shù)。根據(jù)你的團隊規(guī)模、業(yè)務(wù)需求和資源預算,做出明智的選擇。

隨著云原生生態(tài)的快速發(fā)展,新的工具和技術(shù)不斷涌現(xiàn)。建議保持持續(xù)學習的習慣,關(guān)注:

  • Docker Compose V2的新特性
  • Harbor的最新版本和安全更新
  • 新興的容器鏡像倉庫解決方案
  • GitOps和聲明式部署的趨勢

無論你是剛開始接觸容器技術(shù),還是已經(jīng)在生產(chǎn)環(huán)境中大規(guī)模使用,希望本文都能為你提供有價值的參考和指導。祝你在容器化的道路上越走越遠!

相關(guān)文章

  • 如何解決docker logs無法實時輸出腳本打印的內(nèi)容

    如何解決docker logs無法實時輸出腳本打印的內(nèi)容

    這篇文章主要介紹了如何解決docker logs無法實時輸出腳本打印的內(nèi)容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker 復制容器的項目實踐

    docker 復制容器的項目實踐

    本文主要介紹了docker 復制容器的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • docker部署rabbitmq集群的實現(xiàn)方法

    docker部署rabbitmq集群的實現(xiàn)方法

    這篇文章主要介紹了docker部署rabbitmq集群的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • keepalived+nginx+httpd實現(xiàn)的雙機熱備+負載均衡

    keepalived+nginx+httpd實現(xiàn)的雙機熱備+負載均衡

    本文主要介紹了keepalived + nginx + httpd 實現(xiàn)的雙機熱備+負載均衡,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07
  • Docker?exec?的實現(xiàn)原理介紹

    Docker?exec?的實現(xiàn)原理介紹

    這篇文章主要介紹了Docker?exec的實現(xiàn)原理,詳細解讀了docker?exec這個操作背后,Linux?Namespace更具體的工作原理,這種通過操作系統(tǒng)進程相關(guān)的知識,逐步剖析Docker容器的方法,需要的朋友可以參考一下
    2022-04-04
  • Docker部署Mysql,.Net6,Sqlserver等容器

    Docker部署Mysql,.Net6,Sqlserver等容器

    這篇文章介紹了Docker部署Mysql,.Net6,Sqlserver等容器的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • docker部署Gitlab全過程

    docker部署Gitlab全過程

    文章介紹了如何拉取GitLab Docker鏡像、首次登錄獲取默認密碼、修改密碼、配置SSH Key、生成SSL證書以及測試SSH方式拉取代碼的過程
    2025-12-12
  • Docker中搭建FastDFS文件系統(tǒng)(多圖教程)

    Docker中搭建FastDFS文件系統(tǒng)(多圖教程)

    這篇文章主要介紹了Docker中搭建FastDFS文件系統(tǒng)(多圖教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Docker容器網(wǎng)絡(luò)端口配置過程詳解

    Docker容器網(wǎng)絡(luò)端口配置過程詳解

    這篇文章主要介紹了Docker容器網(wǎng)絡(luò)端口配置過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • docker利用selenium+testng實現(xiàn)web自動化的方法

    docker利用selenium+testng實現(xiàn)web自動化的方法

    這篇文章主要給大家介紹了關(guān)于docker利用selenium+testng實現(xiàn)web自動化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2018-10-10

最新評論

屏边| 梨树县| 府谷县| 哈密市| 霍山县| 轮台县| 岳西县| 西城区| 宜宾县| 格尔木市| 达孜县| 台南市| 呼伦贝尔市| 奉节县| 贵定县| 繁峙县| 大安市| 宜阳县| 上犹县| 周至县| 洛扎县| 垫江县| 赤水市| 昌吉市| 简阳市| 柳州市| 新余市| 八宿县| 尖扎县| 汕尾市| 杨浦区| 应用必备| 农安县| 怀柔区| 隆安县| 尉氏县| 土默特右旗| 读书| 乐业县| 莆田市| 金塔县|