你可以使用以下步驟從華為云鏡像倉庫下載 selenium/standalone-chrome
鏡像:
1. 登錄華為云鏡像倉庫(如果需要認證)
bash
sudo docker login -u <用戶名> -p <密碼> swr.cn-north-4.myhuaweicloud.com
-
如果沒有華為云賬號,可以嘗試直接拉取(部分公開鏡像可能無需登錄)。
2. 拉取指定鏡像
bash
sudo docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/selenium/standalone-chrome:latest
3. 重命名鏡像(可選,方便使用)
默認拉取的鏡像名稱會包含華為云地址,可以重命名為標準名稱:
bash
sudo docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/selenium/standalone-chrome:latest selenium/standalone-chrome:latest
4. 驗證鏡像
bash
sudo docker images
輸出應包含:
text
REPOSITORY TAG IMAGE ID CREATED SIZE swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/selenium/standalone-chrome latest xxxxxxx 2 weeks ago 1.2GB selenium/standalone-chrome latest xxxxxxx 2 weeks ago 1.2GB
5. 運行容器
bash
sudo docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome
6. Python 測試代碼
python
from selenium import webdriverdriver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub',options=webdriver.ChromeOptions() )driver.get("https://www.baidu.com") print(driver.title) driver.quit()
常見問題解決
問題1:權限拒絕
bash
ERROR: Got permission denied while trying to connect to the Docker daemon socket
解決:
bash
sudo usermod -aG docker $USER # 將當前用戶加入docker組 newgrp docker # 刷新組權限
問題2:鏡像拉取失敗
如果華為云鏡像不可用,可以嘗試其他國內源:
bash
# 中科大鏡像 sudo docker pull docker.mirrors.ustc.edu.cn/selenium/standalone-chrome:latest# 阿里云鏡像(需替換<your-id>) sudo docker pull registry.cn-hangzhou.aliyuncs.com/<your-id>/selenium-standalone-chrome:latest
總結
-
使用華為云鏡像地址直接拉取。
-
可選重命名鏡像以簡化使用。
-
運行容器并通過
4444
端口訪問。 -
Python 代碼通過
Remote
連接即可控制瀏覽器。
如果華為云鏡像無法訪問,建議嘗試其他國內鏡像源或手動導入鏡像。
要將已運行的 selenium/standalone-chrome
容器修改為 服務器重啟后自動啟動,按以下步驟操作:
1. 查找容器ID或名稱
bash
sudo docker ps
輸出示例:
text
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 selenium/standalone-chrome "/opt/bin/entry_poin…" 5 minutes ago Up 5 minutes 0.0.0.0:4444->4444/tcp charming_curie
記錄 CONTAINER ID
(如 a1b2c3d4e5f6
)或 NAMES
(如 charming_curie
)。
2. 更新容器重啟策略
bash
sudo docker update --restart unless-stopped <容器ID或名稱>
例如:
bash
sudo docker update --restart unless-stopped a1b2c3d4e5f6 # 或 sudo docker update --restart unless-stopped charming_curie
3. 驗證配置
bash
sudo docker inspect <容器ID或名稱> | grep -A 5 RestartPolicy
正常輸出應包含:
json
"RestartPolicy": {"Name": "unless-stopped","MaximumRetryCount": 0 }
4. 測試重啟(可選)
bash
# 重啟Docker服務(模擬服務器重啟) sudo systemctl restart docker# 檢查容器是否自動啟動 sudo docker ps -a | grep selenium
如果狀態為 Up
,說明配置成功。
常見問題
問題1:容器未自動啟動
-
檢查 Docker 服務是否開機自啟:
bash
-
sudo systemctl enable docker
問題2:修改后不生效
-
確保容器未手動停止(
unless-stopped
對docker stop
無效)。
問題3:想恢復默認行為
bash
sudo docker update --restart no <容器ID或名稱>