Tag: 窗撰写

Docker – 具有自定义conf的nginx

当运行docker-compose.yml docker-compose up和下面docker-compose.yml文件时, nginx在启动后立即退出。 当我删除以下行: – ./nginx/config:/etc/nginx/conf.d nginx不会立即退出。 docker-compose.yml version: '3' services: nginx: image: nginx ports: – '8080:80' volumes: – ./nginx/log:/var/log/nginx – ./nginx/config:/etc/nginx/conf.d – ../wordpress:/var/www/wordpress php: image: php:fpm ports: – 9000:9000 mysql: image: mysql ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret volumes: – ./mysql/data:/var/lib/mysql 我怎样才能让nginx运行一个自定义的/etc/nginx/conf.d/default.conf ?

如何使用docker-compose将PHP容器与nginx容器连接起来?

我试图在Docker环境中创build一个简单的LAMP堆栈。 它通过运行第三方容器phpdockerio/php71-fpm:latest ,但是我想要一个安装了XDebug的自定义PHP容器。 我的问题是,如果我执行docker-compose up ,启动后的PHP容器退出之前,我的webserver容器可以使用它。 我怎样才能成功告诉PHP容器等待我的nginx容器的连接? 命令行输出 PS C:\playground> docker-compose.exe up Starting playground_php_1 Starting playground_web_1 Attaching to playground_php_1, playground_web_1 playground_php_1 exited with code 0 playground_web_1 exited with code 1 Dockerfile FROM php:latest RUN pecl install xdebug \ && docker-php-ext-enable xdebug ENTRYPOINT ["docker-php-entrypoint"] CMD ["php", "-a"] 泊坞窗,compose.yml version: '2' services: php: build: context: ./etc/php/ dockerfile: […]

将docker容器的权限分享给来自volumes_from的php-fpm映像

我正在dockerizing一个应用程序。 我做了这个组合文件,为这个应用程序创build一个数据容器,master,并使用nginx和php-fpm来服务它,但是所有的时候我都有权限问题: salahaddin@TulipanROG  ~/Proyectos/UzmanTech/opus  nginx-server ✚ ●  docker-compose logs -f | grep opus.php  130 ↵  2678  05:37:53 Attaching to opus.db-seed, opus.web, opus.php, opus.key, opus.migration, opus.master, opus.redis, opus.db opus.php | [23-Jun-2017 02:37:21] NOTICE: fpm is running, pid 1 opus.php | [23-Jun-2017 02:37:21] NOTICE: ready to handle connections opus.php | [23-Jun-2017 […]

Docker – 安全的mysqlconfiguration

我想为我的生产和testing环境运行一个单独的docker容器为我的mysql数据库。 问题是,它有可能暴露port号和环境值,例如黑客已经获得访问容器。 我怎样才能写一个安全的mysql映像,不显示端口号和环境variables? UPDATE 我创build了一个本地.env文件,并在我的docker-compose.yml中使用了variables。 泊坞窗,compose.yml version: '3.1' services: mysql: image: mysql:5.6 ports: – 3306 environment: – DB_DATABASE=${DB_DATABASE} – DB_USERNAME=${DB_USERNAME} – DB_PASSWORD=${DB_PASSWORD}

无法连接到运行在计算引擎上的docker容器上的mongodb

使用docker-compose我启动了两个docker容器,一个是包含mongodb的第二个包含java应用程序的google vm (compute engine) 。 该应用程序很好地连接到数据库,我可以通过URL http://myvm:8080查看结果。 现在,当我想要在本地启动相同的应用程序连接到相同的数据库时,出现连接错误。 我把bind_ip属性设置为0.0.0.0来连接远程服务器,我在日志中看到这个configuration已经被使用了,但是不起作用。 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "0.0.0.0", port: 27017 } } 虚拟机的所有端口和协议都可以访问。 在我尝试在mongodb上连接时发生的错误之下: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=vm_ip:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused […]

在不同的docker集装箱中无缝地托pipe网站的不同部分

我有一个网站,我正试图转换为docker解决scheme。 网站的一部分是CMS(特别是WordPress),还有一些目前由tomcat处理的Java web应用程序。 目前的做法是我有一个官方的WordPress容器和一个官方的Tomcat容器。 我将自定义内容加载到WordPress(通过一个不是真正属于这个问题一部分的MySQL容器),并将WAR文件加载到Tomcat中。 所以问题是这样的:WordPress网站的部分链接到Java应用程序。 以前,其中一些链接是相对链接,就像/Application1一样简单,用户可以访问Java应用程序。 现在,因为它们被托pipe在不同的容器中,所以我不能这样做,因为WordPress容器中没有任何名为“Application1”的东西。 我已经用这样的RewriteRules修改了WordPress容器的htaccess文件: # Tomcat exposes port 8085 RewriteRule ^.*Application1/(.*)$ http://localhost:8085/Application1/$1 [R,L] 但是这意味着如果用户在wordpress中点击Application1的链接,他们的浏览器就会把它们redirect到localhost:8085 – 如果你在本地运行这个容器集合,但是不能用于远程用户,那么这个工作正常。 我可以将localhost更改为将运行的服务器的实际名称。 但是,这将需要手动更新此堆栈将运行的每个服务器,或重置为本地主机的开发人员。 我可以将WordPress和Tomcat结合到一个容器中,但是我们希望将它们分开,以便在我们需要升级时,只需更改我们正在提取的容器的版本,而不必从头重新构build自定义容器。 有没有一个更无缝的方式来做到这一点,以便用户的浏览器中的URL永远不会改变? 有没有办法让这个工作,以便远程用户甚至不知道该网站的不同部分被托pipe在不同的容器?

Windows数据持久性的Docker – 主机映射与数据卷

我对Docker非常陌生,在阅读了关于数据量之后,我仍然对我所看到的行为感到困惑。 在我的撰写文件中,我有一个像这样的mysql的条目: db: image: mysql restart: always volumes: – ./database:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: p4ssw0rd! networks: – back 这将/ database目录映射到/var/lib/mysql 。 创build的数据库文件,我可以启动Wordpress,安装,添加一个post。 这个问题,因为它从来没有坚持任何创build的数据。 如果我重新启动Docker并执行: docker-compose up -d 数据库是空的。 将其更改为: db: image: mysql restart: always volumes: – db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: p4ssw0rd! networks: – back 并添加一个这样的音量: volumes: db_data: 现在将数据保留在Docker数据卷中并重新启动。 在上次运行过程中创build的任何数据仍然存在。 我如何得到这个工作使用主机映射目录? 我正确地思考使用卷的第二个例子是要走的路吗?

在FROM之后,Dockerfile不会更改RUN

所以我有一个像这样的docker文件: FROM php:5.6-apache RUN apt-get update RUN apt-get -y install php5-mysql RUN a2enmod rewrite RUN service apache2 restart 然后是一个docker工人,就像这样 version: '2' services: apachephp: build: . ports: – '8081:80' – '443:443' volumes: – '~/dev/test/backend:/var/www/html' 一切正常,除了php-mysql插件和重写apache模块。 任何想法,我怎么能使这个工作? 谢谢。-

docker-up时如何改变mysql的特性?

当我保存中文string时,mysql会出现错误“exception值: (1366,“不正确的string值:'\ xE5 \ xB0 \ x8F \ xE6 \ x98 \ x8E'列'name'在第1行”)“,我检查mysql的字符,它显示: mysql> show variables like 'character%'; +————————–+—————————-+ | Variable_name | Value | +————————–+—————————-+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | […]

文件在Docker容器中不断返回

我正在使用Docker容器构build一个Drupal环境。 为了达到这个目的,我创build了2个docker容器。 一个用于drupal本身,另一个用于MariaDB实例。 这些使用docker-compose捆绑在一起: 这个环境的目标是根据PHP 7.xtesting现有的网站。 要做到这一点,我需要导入一个数据库转储与settings.php(凭证)文件。 一切正常,直到昨天。 每次启动docker-compose文件,并使用以下命令进行深入研究: docker exec -it drupal_environment bash 旧的settings.php文件不断返回。 我已经删除了我的卷,图像,networking和(运行)容器。 settings.phpconfiguration: UPDATE 仍然有同样的问题,即使我从docker集线器新鲜的图像。