Tag: 窗撰写

如何连接到由docker-compose创build的mysql

我无法连接到在本地环境(Mac OS X)中使用Docker创build的Mysql。 我已经创build了下面的configuration文件。 version: '2' services: db: image: mysql:5.7 environment: MYSQL_DATABASE: mysqldatabase MYSQL_USER: mysql MYSQL_PASSWORD: mysql MYSQL_ROOT_PASSWORD: password ports: – "33333:3306" container_name: mysql-db volumes: – db-data:/var/lib/mysql volumes: db-data: driver: local 然后,我用下面的命令启动了mysql的docker容器。 $ docker-compose up -d $ docker start mysql-db 到目前为止,没有问题,但尝试连接到MySQL时发生错误。 $ mysql -p 33333 -u root -p Enter password: ERROR 2002 (HY000): Can't connect […]

问题得到docker使用wordpress正确访问我的数据库

我是新来的docker工人 – 但是我正在设置一个本地testing环境来玩一些WordPress的东西。 所以我去了docker站点,并提出了一个默认的docker.yml文件,如何让它容易。 我只做了一些改变,但大部分是一个简单的文件。 version: '3' services: db: image: mysql:5.7 volumes: – db_data:/var/lib/mysql2 restart: always ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: somerootwordpresspw MYSQL_DATABASE: testdatabase MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: volumes: – ./WP-TEST/:/var/www/html/ depends_on: – db image: wordpress:latest ports: – "80:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: 当我用上面的.yml文件运行docker docker-compose up ,我看到这个错误: […]

将自定义二进制文件添加到Docker容器PATH

我想添加一个自定义的二进制可执行文件到一个容器。 我已经在我的机器上,并尝试添加它。 起初,我想将某个目录挂载为/tmp/foo ,并将其复制到/usr/bin/ 。 不是很好,但应该做的伎俩。 为此,我在docker-compose.yml定义了以下卷安装: volumes: – ./var/bin/:/tmp/bin/ 并在Dockerfile以下命令: RUN ls /tmp/bin RUN cp /tmp/bin/wkhtmltoimage /usr/local/bin/ && cp /tmp/bin/wkhtmltopdf /usr/local/bin/ 正如你所看到的,我已经添加列表目录来检查是否有任何东西在那里,我得到了 ls: cannot access /tmp/bin: No such file or directory ERROR: Service 'web' failed to build: The command '/bin/sh -c ls /tmp/bin' returned a non-zero code: 2 现在有两个问题: 为什么这个目录在容器的命令行中不可见? 其他坐骑可用… 我怎样才能“正确地”实现这个目标? 所以这个二进制文件在映像生成过程中将被复制/设置一次,并且不需要每个容器运行的映射?

Docker MySQL:连接一个Rails应用程序到MySQL

我有一个在Docker中运行的Rails应用程序。 我想在一个单独的容器中运行MySQL并连接两个。 我docker-compose.yml文件如下所示: # docker-compose.yml db: image: "mysql:5.6" ports: – 3306 environment: MYSQL_ROOT_PASSWORD: pass MYSQL_DATABASE: dbname MYSQL_USER: user MYSQL_PASSWORD: pass web: build: . ports: – "80:80" env_file: – .env.development links: – db volumes: – "/webapp:/home/app/webapp" 当我运行docker-machine ip default我得到192.168.99.100 。 当我运行docker ps我看到mysql在PORT: 3306/tcp, 0.0.0.0:32782->32781/tcp : 3306/tcp, 0.0.0.0:32782->32781/tcp上运行编辑:删除mysql容器并重新启动它后,端口实际上是0.0.0.0:32784->3306/tcp 我正在使用Sequelgem,并使用以下参数连接到我的分贝: Sequel::Model.db = Sequel.connect(adapter: 'mysql2', database: 'dbname', user: 'user', […]

Docker多个具有持久性的MySQL容器

我正在尝试使用Docker Compose来设置两个MySQL容器和一个数据专用容器来保存MySQL数据。 这里是docker-compose.yml: db1: image: mysql volumes_from: – data environment: – MYSQL_ROOT_PASSWORD=password db2: image: mysql volumes_from: – data environment: – MYSQL_ROOT_PASSWORD=password data: image: mysql volumes: – /var/lib/mysql entrypoint: /bin/echo 但是,这两个mysql守护进程都有冲突,因为它们需要一个单独的数据目录: [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files. [ERROR] InnoDB: Unable to lock […]

Docker在端口3306组成mysql可达

我怎样才能让这个docker的mysql数据库,从“外部”可以达到 – 这意味着我可以连接到数据库pipe理工具,例如在端口3306上: wordpress: build: /Users/FabianL/wp-docker/ container_name: "kr-wp-container" links: – db:mysql ports: – 8080:80 – 3306:3306 db: image: mysql environment: MYSQL_ROOT_PASSWORD: biersaufen

如何使用docker-compose链接两个容器

目前,我有两个容器,我从图像中build立,然后链接两个: 例如: #mysql docker build -t my/mysql docker-mysql docker run -p 3306:3306 –name mysql -d my/mysql:latest #webapp docker build -t my/tomcat:7.0 tomcat/7.0 docker run -d –link mysql –name tomcat7 my/tomcat:7.0 由于我使用mysql容器链接webapp容器,所以webapp容器获得了一个创build的MYSQL_PORT_3306_TCP_ADDR环境variables。 我使用这个环境variables,然后连接到我的jdbcstring中的MySQL数据库。 所有这些工作正常,但现在我想使用docker-compose以便可以构build一切,并从一个命令运行。 然而,在玩docker组合时,我注意到它将docker_前缀docker_到图像名称,并且不赞成使用link选项。 题 上面的build / run命令将如何转换为docker-compose yml文件,以便webapp容器可以连接到jdbc的mysql容器。

docker-compose up -d不会在docker-compose up时创build卷

这是预期的行为还是错误? 在运行docker-compose up ,我的卷是在本地机器上创build的。 但是在运行docker-compose -d时,它们不是。 这是造成问题的docker-compose文件中的一部分: test-mysql: image: mysql:5.7 container_name: test-mysql environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=test – MYSQL_USER=test – MYSQL_PASSWORD=root ports: – 3306:3306 volumes: – ../www/data/mysql:/var/lib/mysql 所以当第一次运行docker-compose up时,会创build../www/data/mysql文件夹。 但是,如果我用docker-compose up -d试试这个,文件夹不会被创build。

用`docker-compose run`和`docker-compose exec`调用的mysql客户端

为什么在使用docker-compose run时需要指定主机? 例如 docker-compose run db_container mysql -uuser -ppass db_name -h db_container 似乎是直接相当的 docker-compose exec db_container mysql -uuser -ppass db_name 当从第一个例子中省略主机名标志时,mysql失败,出现“无法连接到套接字”的错误。 这两个例子有什么区别?

Docker-从主机angular度将configuration前端与后端的IP进行组合

我想创build一个简单的docker-compose设置。 我有一个静态的前端实现了由nginx服务的JS – 这是一个容器。 我也有一个API后端Web服务器 – 另一个容器。 我可以使用典型的端口转发单独运行两个容器,也可以通过docker-machine ip提供的IP从我的主机(Mac OS X)访问。 问题是前端服务正确的静态内容,但JavaScript正在API请求错误的地址。 因为主机是实际执行API调用的主机,所以前端应用需要从主机的angular度来configuration后端的地址。 有没有办法将docker机器的IP地址传递到容器的环境中? 或者可以做到这一点的其他networkingconfiguration。