你可以使用以下步骤从华为云镜像仓库下载 selenium/standalone-chrome
镜像:
1. 登录华为云镜像仓库(如果需要认证)
sudo docker login -u <用户名> -p <密码> swr.cn-north-4.myhuaweicloud.com
如果没有华为云账号,可以尝试直接拉取(部分公开镜像可能无需登录)。
2. 拉取指定镜像
sudo docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/selenium/standalone-chrome:latest
3. 重命名镜像(可选,方便使用)
默认拉取的镜像名称会包含华为云地址,可以重命名为标准名称:
sudo docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/selenium/standalone-chrome:latest selenium/standalone-chrome:latest
4. 验证镜像
sudo docker images
输出应包含:
5. 运行容器
sudo docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome
6. Python 测试代码
from selenium import webdriver
driver = webdriver.Remote(
command_executor='http://localhost:4444/wd/hub',
options=webdriver.ChromeOptions()
)
driver.get("https://www.baidu.com")
print(driver.title)
driver.quit()
常见问题解决
问题1:权限拒绝
ERROR: Got permission denied while trying to connect to
the Docker daemon socket
解决:
sudo usermod -aG docker $USER # 将当前用户加入docker组
newgrp docker # 刷新组权限
问题2:镜像拉取失败
如果华为云镜像不可用,可以尝试其他国内源:
# 中科大镜像
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或名称
sudo docker ps
输出示例:
记录 CONTAINER ID
(如 a1b2c3d4e5f6
)或 NAMES
(如 charming_curie
)。
2. 更新容器重启策略
sudo docker update --restart unless-stopped <容器ID或名称>
例如:
sudo docker update --restart unless-stopped a1b2c3d4e5f6
# 或
sudo docker update --restart unless-stopped charming_curie
3. 验证配置
sudo docker inspect <容器ID或名称> | grep -A 5 RestartPolicy
正常输出应包含:
4. 测试重启(可选)
# 重启Docker服务(模拟服务器重启)
sudo systemctl restart docker
# 检查容器是否自动启动
sudo docker ps -a | grep selenium
如果状态为 Up
,说明配置成功。
常见问题
问题1:容器未自动启动
检查 Docker 服务是否开机自启:
sudo systemctl enable docker
问题2:修改后不生效
确保容器未手动停止(
unless-stopped
对docker stop
无效)。
问题3:想恢复默认行为
sudo docker update --restart no <容器ID或名称>