Tag: mysql

Docker:推迟依赖另一个容器的启动操作?

我有两种types的Docker容器:一种使用Web应用程序(nginx / php-fpm),另一种使用MySQL数据库。 两者都通过networking连接。 应用程序容器知道数据库容器,但是,数据库不知道零个或一个或多个应用程序容器是否可用。 这两种容器都使用Supervisord。 数据库容器必须启动mysqld ,这可能需要几秒钟的时间。 另一个容器必须执行一些启动操作,其中一部分需要数据库访问。 由于这些操作依赖于数据库容器,因此我在脚本的顶部放置了一个循环,等待数据库服务器可用: try=0 ok=0 until mysql -h$dbhost -u$dbuser -p$dbpass -e "USE $dbname" && ok=1; do [ $((++try)) -gt 30 ] && break sleep 1 done if [ $ok -gt 0 ]; then # DO STUFF else exit 1 fi 虽然这确实起作用,但是我发现有两个缺点:首先,如果数据库容器停机或者在启动应用程序容器时启动某个超时,则脚本将失败。 其次,应用程序容器将不知道数据库服务器上是否有更改(例如,迁移)。 当我知道Supervisord事件时 ,我想知道:如何在同一个networking中通知任意数量的其他容器? (注意:我没有限制使用Supervisord,我只是觉得这是最有希望的方法。)

查询生活在桥梁用户定义networking中的docker mysql

与docker工人,我创build一个networking和一个MySQL映像使用: sudo docker network create –driver bridge mynet_nw sudo docker run –network=mynet_nw –name=mydb -v /opt/mysql_data:/var/lib/mysql –env="MYSQL_ROOT_PASSWORD=mypassword" mysql:5.7 我想运行: mysql -uroot -pmypassword -h ????? -P 3306 能够在mydb数据库中运行命令。 代替 ????? 我尝试了mydb,但它给我错误。 我错过了什么吗?

与docker为WordPress的端口转发

我是docker工的新手。 我跟着这里的教程https://www.youtube.com/watch?v=Pe6a8Jbvi9E创build一个WordPress站点与docker。 他正在用下面的命令解释端口转发, docker run –link=my_mysql:mysql -p 80:80 -d wordpress 据我了解,这将把主机端口80中的所有请求redirect到容器的端口80。 但是,这将如何与mysql的端口3306沟通? 而且在那个教程中,数据库的详细信息不是在wordpress的任何地方设置的,而是从db config的值取自哪里的? 有人可以解释吗? 对不起,如果这是非常基本的问题。

MySQL导入挂在Mac上的Vagrant CoreOS框中

我有一个本地开发安装使用以下内容: Mac优胜美地10.10.3 stream浪1.7.3 CoreOS alpha版本681.0.0 2个Docker容器,一个用于Apache PHP,另一个用于基于Ubuntu 12.10的mysql 它设置为使用NFS将本地开发目录〜/ Sites同步到Vagrant框,因为我的工作目录以及MySQL目录位于这里(〜/ Sites / .coreos-databases / mysql)。 从我所读到的这不是最好的设置types,但它已经为我工作了一段时间以及其他工作。 最近我还没有能够导入任何数据库转储到此设置。 import开始和挂起大约一半的过程。 它发生在命令行以及Sequel Pro上。 它确实导入了一些表格,但是每次都在相同的位置冻结。 这个转储的大小似乎并不重要 – 我一直在尝试的只有104Kb。 其他人与100MB +转储有同样的问题 – 在同一地点冻结大约一半。 我的stream浪文件: Vagrant.configure("2") do |config| # Define the CoreOS box config.vm.box = "coreos-alpha" config.vm.box_url = "http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json" # Define a static IP config.vm.network "private_network", ip: "33.33.33.77" # Share the […]

docker工人MySQL没有输出

Docker初学者。 我有一台机器设置了2个容器。 他们都在运行标准的mysql映像。 一个被设置为服务器,并从另一个链接到它,并尝试运行mysql命令。 理想情况下,我希望能够通过命令提示符完成此操作,以便通过Python调用它。 我能够无误地运行一些命令,并尝试将我的名字放入myDB的用户名表中。 当我运行命令: docker exec sqlserverClient mysql -uroot -ppassword -e"use myDB" -e"select * from Usernames" 我找回输出: Warning: Using a password on the command line interface can be insecure 而没有别的。 嗯不错。 可能是好的build议。 但是更大的问题是: 我的桌子在哪里? 即使插入错误,我不应该至less看到一张空白的桌子? 我完全期待看到这样的事情: +————+————-+ | firstname | lastname | +————+————-+ | Joe | Shmoe | +————+————-+ “docker日志sqlserverClient”没有它。 那么它去了哪里? 我所有的命令 […]

在Mac上的Docker机器:在Docker主机/ docker-machine上无法看到已安装的卷? 卷的物理存储位置在哪里?

我在一台Macbook Pro笔记本电脑上运行docker-machine(0.5.0)和docker-compose(1.5.0)来运行我的容器。 这意味着我使用docker-machine来创build我的virtualbox boot2docker驱动的HOST机器,它将运行我的docker守护进程并托pipe所有的容器。 我想我错过了关于HOSTS和VOLUME的概念,因为它们涉及到Docker和文档。 这是我的docker-compose.yml文件(网站只是build立php:5.6-apache图片): web: restart: "always" build: ./docker-containers/web ports: – "8080:80" volumes: – ./src:/var/www/html links: – mysql:mysql mysql: restart: "always" image: mysql:5.7 volumes_from: – data ports: – "3306:3306" environment: – MYSQL_ROOT_PASSWORD=XXX data: restart: "no" image: mysql:5.7 volumes: – /var/lib/mysql command: "true" Docker撰写卷的文件文档在这里: http : //docs.docker.com/compose/compose-file/ 它声明了卷 – 将path装载为卷,可选地在主机(HOST:CONTAINER)上指定path,或者访问模式(HOST:CONTAINER:ro)。 在这种情况下,主机是指由我的虚拟机创build的docker-machine,是否正确? 或者我的本地macbook文件系统? 在我的虚拟机上安装一个path到一个容器? 在networking下我声明: […]

MySQL Docker容器不会将数据保存到新映像

我正在尝试创build一个预设有特定架构和种子数据的MySQL Docker容器,以便可以将其他容器连接到它作为一个数据库。 我使用受信任的dockerfile / mysql映像作为基础,并且我编写了一个Dockerfile来从该基础创build一个新映像,并将我的schema.sql添加到其中。 在build立图像(mysql:base)之后,我一直试图在新容器中运行bash,然后进入mysql并创build我的数据库,然后导入模式。 然后我退出容器,尝试将容器提交给一个新的Docker镜像。 但是,生成的图像不会保留我对MySQL数据库所做的任何更改。 它确实坚持我在容器中写入的其他文件,但不是数据库。 这里是我用来构build初始图像(myorg / mysql:base)的Dockerfile。 FROM dockerfile/mysql:latest MAINTAINER (me) ADD schema.sql /data/schema.sql EXPOSE 3306 # Define working directory. WORKDIR /data CMD ["mysqld_safe"] build立后,我进入形象: docker run -i -t myorg/mysql:base bash 并运行MySQL来导入模式: myslqd_safe & 141218 00:15:56 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql mysql -u root mysql> CREATE DATABASE […]

在Docker构build中播种mysql数据

我正在尝试构build一个docker镜像,其中包含mysql和一些种子数据,并试图找出在docker构build阶段如何将数据插入到数据库中。 看来我需要启动MySQL引擎,调用一个命令来运行一些sql语句,然后closuresMySQL引擎。 任何好的想法如何最好地做到这一点?

无法使用JDBC连接到mySql docker容器

我使用Docker Maven插件 当testing集成开始时,我可以通过以下命令在terminal的容器上连接到mysql: mysql -h 127.0.0.1 -P 32795 -uroot -p 和万物运作良好,但是当我想连接在Java应用程序的JDBC与JDBC与这个代码: Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection connection = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:" + System.getProperty("mysqlPort") + "/dashboardmanager", "root", "root" ); 我得到这个错误: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver […]

在mariadb官方泊坞窗图像上的InnoDB错误

我有一个非常奇怪的错误。 我已经能够把它归结为一个非常简单的情况,我不知道我是否发现了一个错误,或者如果我错过了一些观点。 事情是我需要一个mariadb容器,我可以使用以下命令完美运行它: docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mariadb 但是,它与以下docker-compose.yml文件失败: wordpress_db: image: mariadb environment: – MYSQL_ROOT_PASSWORD=foo 它包括: wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] InnoDB: The InnoDB memory heap is disabled 我可以清楚地认识到的第一个信息是: wordpress_db_1 | InnoDB: No valid checkpoint found. (你可以在post末尾看到完整的输出) 这不会发生,如果我切换MySQL的mariadb。 谁能帮我? 谢谢! 输出: Starting miqueladell_wordpress_db_1 Attaching to miqueladell_wordpress_db_1 wordpress_db_1 | 2016-01-11 14:33:25 140183257745344 [Note] mysqld (mysqld […]