redis 如何在容器中运行服务器,并运行一个docker client来连接它使用`docker run`?

wz8daaqr  于 4个月前  发布在  Redis
关注(0)|答案(1)|浏览(88)

如何在Docker中运行服务器(mysql或redis),并在其中运行一个MySQL客户端来连接自己。

docker run -it --rm \
--name mysql-container \
-e MYSQL_ROOT_PASSWORD=mypassword \
-p 3307:3306 \
mysql \
mysql -u root -h localhost -P 3306 -p

字符串
给出错误:
错误2002(HY 000):无法连接到本地MySQL服务器通过套接字'/var/run/mysqld/mysqld.sock'(2)

docker run -it --rm \
--name my-redis \
redis \
redis-cli -h localhost


给出错误
无法在127.0.0.1连接到Redis:6379:连接被拒绝
我是docker的新手。我假设它应该运行服务器,然后运行我的客户端命令。但它不工作。
我错过了什么?

qnakjoqk

qnakjoqk1#

实际上,在执行login命令之前,需要等待container中的mysql-serverredis-server完成引导。引导时间取决于许多因素。为了安全起见,我认为应该在命令之间添加sleep
你可以试试这个:

  • For MySQL
docker run -d --rm \
--name mysql-container \
-e MYSQL_ROOT_PASSWORD=mypassword \
-p 3307:3306 \
mysql && sleep 5 && \
docker exec -it mysql-container \
bash -c "mysql -u root -h localhost -P 3306 -p"

字符串

  • 对于Redis
docker run -d --rm \
--name my-redis \
redis && sleep 5 && \
docker exec -it my-redis \
redis-cli -h localhost

相关问题