在docker-compose中执行mysql命令时出错
当我执行xdcomp_my_sql_client命令它ping ip,但是当它试图到达mysql服务器失败。 如果我在容器运行时执行完全相同的命令,它就可以工作。 看起来mysql服务器在命令执行的时候没有运行。 但是我已经使用了“depends_on”命令,所以我做错了什么?
谢谢。
version: '2' services: xdcomp_my_sql_server: image: mysql/mysql-server:latest environment: MYSQL_ROOT_PASSWORD: diego MYSQL_USER: otro MYSQL_PASSWORD: otro MYSQL_ROOT_HOST: 172.28.0.101 networks: SQLNetwork: ipv4_address: 172.28.0.102 xdcomp_my_sql_client: build: . command: sh -c 'ping -c 5 172.28.0.102 && mysql -h 172.28.0.102 -u root -pdiego sys < /lafayette/forensic.sql && tail -f /etc/hostname' ports: - 83:80 networks: SQLNetwork: ipv4_address: 172.28.0.101 depends_on: - xdcomp_my_sql_server networks: SQLNetwork: driver: "bridge" ipam: config: - subnet: 172.28.0.0/24 gateway: 172.28.0.201
客户端Dockerfile
FROM ubuntu:16.04 RUN apt-get update RUN apt-get install -y mysql-client RUN apt-get install -y git RUN git clone https://github.com/linkedin/lafayette RUN apt-get update RUN apt-get install -y python-dnspython RUN apt-get install -y python-pip RUN pip install Flask RUN pip install python-dateutil RUN apt-get install -y python-mysqldb RUN pip install requests RUN pip install multiprocessing RUN pip install multiprocess RUN apt-get install -y vim RUN apt-get -y install iputils-ping
使用docker包括两个步骤:
- build立一个形象
- 根据图像创build容器并运行该容器
关键是你的mysql client
只能在第二步连接到服务器。
Dockerfile
“执行”,而你build立的形象。 在这个时候,你没有任何容器,所以你不能连接到它们。 你需要移动命令
RUN cd lafayette && mysql –h 172.25.0.102 –u root –ppass sys < forensic.sql
从Dockerfile
到entrypoint.sh
你能告诉我你的Dockerfile吗? 我会尽力解决这个问题
问题如下:执行客户端命令时,mysql服务器没有运行。 即使关键字“depends_on”存在(请参阅: https ://docs.docker.com/compose/startup-order/)因此,解决scheme是等待mysql服务器。 这是通过以下命令完成的:
命令:sh -c'直到nc -z -v -w20 172.28.0.102 3306; 做睡1; 回声“等待mysqlserver上来…”; done && ping -c 5 172.28.0.102 && mysql -h 172.28.0.102 -u root -pdiego sys </lafayette/forensic.sql && tail -f / etc / hostname'
等待是由以下行:
直到nc -z -v -w20 172.28.0.102 3306; 做睡1; 回声“等待mysqlserver上来…”; DONE
nc = netcat命令,它检查给定的ip和端口的连接
- docker-compose中的Python与具有相同图像的独立容器之间的差异
- 使用rabbitmq docker镜像在rabbitmq.config中configurationssl
- Docker中的Xdebug在PhpStorm中不起作用
- Docker-compose:启动项目时遇到错误
- 以非root用户身份启动Mongodb容器
- Gitlabpipe道阶段需要几个小时或几天来显示结果(通过,失败) – docker,节点的应用程序
- Docker无法在Rails bundle上安装rake
- 将Compojure应用程序与rethinkdb和docker-compose耦合
- docker-compose中的“无法连接到本地MySQL服务器”