docker指定配置文件启动本地redis镜像 Unable to find image ‘redis-server:latest‘ locally
目录
总结:docker官网没有明确写出原因,但不难推断只有先获取到镜像才能根据指定的配置文件启动,redis是如此,其他需要指定配置文件的容器也是如此
问题复现
1.启动命令:
docker run -d -it -p 6379:6379
-v /opt/docker/redis/data:/data
-v /etc/redis/redis.conf:/etc/redis/redis.conf
redis-server /etc/redis/redis.conf
--name redis
redis
2.报错信息:
Unable to find image 'redis-server:latest' locally
Trying to pull repository docker.io/library/redis-server ...
/usr/bin/docker-current: repository docker.io/redis-server not found: does not exist or no pull access.
See '/usr/bin/docker-current run --help'.
解决
1.排除网络问题
- 先测试用 docker pull redis 拉取镜像能不能成功,成功则说明网络无问题
- 拉取失败则 配置文件/etc/docker/daemon.json,添加阿里云镜像
-
vim /etc/docker/daemon.json
# 配置阿里云镜像 { "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }
# 重启dokcer服务 systemctl restart docker
2.查看docker官方文档指定conf的示例
dokcer redis 文档链接:Docker
看这里:docker官方将 redis-server命令放到了 指定镜像 redis 的后面
# docker官网示例
$ docker run
-v /myredis/conf:/usr/local/etc/redis
--name myredis
redis
redis-server /usr/local/etc/redis/redis.conf
3.调整命令顺序
docker run -d -it -p 6379:6379
-v /opt/docker/redis/data:/data
-v /etc/redis/redis.conf:/etc/redis/redis.conf
--name redis
redis
redis-server /etc/redis/redis.conf
运行成功!
总结:docker官网没有明确写出原因,但不难推断只有先获取到镜像才能根据指定的配置文件启动,redis是如此,其他需要指定配置文件的容器也是如此