你可以使用以下步骤从华为云镜像仓库下载 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或名称>