Tag:

在Docker中导入和加载有什么区别?

我了解export (对于容器)和save (对于图像)之间的区别。 但在一天结束时,保存或导出产生的压缩包应当用作图像 。 那么为什么有两个命令从tarball中创build一个映像?

为什么Docker Compose重新启动可以渲染容器输出越来越多?

我正在编写一个基于Docker Compose的Web应用程序,它有许多后台系统 – 一个HTTP API,一个HTTP代理和一个队列。 所有东西都在PHP的Alpine容器中,PHP 5.6或7.0。 我最初在API容器内的Supervisor中设置了队列,工作正常。 然而,Supervisor / Python使得容器比他们应该更加胖(80M而不是25M),所以我把队列移到了自己的容器中。 它生活了大约5分钟,为了重新启动而退出,我在Supervisor中使用了自动重启系统,所以我已经在Docker Compose中交换到了重启系统。 我正在使用Compose YAML格式的版本2。 当队列启动时,它会向stdout呈现一个简单的消息: queue_instance | Starting queue watcher (path=/remote/queue, proxying to proximate-proxy:8081) 当我最初做docker-compose up时,这很好。 但是,对于每次重新启动,我都会收到其中三条消息,然后是五条消息,以此类推,没有限制。 如果我做docker ps然后它表明只有一个队列运行: halfer@machine:~/proximate-app$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9c94558769d proximate-app "/tmp/container-st…" 2 hours ago Up 2 hours 0.0.0.0:8084->8084/tcp app_instance 7e48d6aec459 proximate-api "sh […]

用docker-compose和mysql和php 7无法连接数据库

我有问题从我的PHP 7.0.1-apache容器连接到我的链接的MySQL容器。 PHP容器Dockerfile: FROM php:7.0.1-apache # Initialize html and php.ini COPY src/ /var/www/html/ COPY config/php.ini /usr/local/etc/php/ # Update modules. RUN apt-get update 泊坞窗,compose.yml: web: build: . ports: – "80:80" links: – "db" volumes: – "./src/:/var/www/html/" db: image: "mysql" ports: – "3306:3306" environment: – "MYSQL_ROOT_PASSWORD=somepword" index.php文件: <?php $servername = "127.0.0.1"; $username = "root"; $password = "somepword"; […]

在Docker Toolbox / Mac安装后设置DOCKER_HOST

Mac在这里。 我通过工具箱安装了Docker,所有的Docker命令都会产生相同的错误: myuser@mymachine:~/tmp$docker info Get http:///var/run/docker.sock/v1.20/info: dial unix /var/run/docker.sock: no such file or directory. * Are you trying to connect to a TLS-enabled daemon without TLS? myuser@mymachine:~/tmp$sudo docker info Password: Get http:///var/run/docker.sock/v1.20/info: dial unix /var/run/docker.sock: no such file or directory. * Are you trying to connect to a TLS-enabled daemon without TLS? * Is your […]

将django docker容器链接到mysql docker容器

由于我对此相当陌生,所以在开始之前,我在互联网上阅读了大量的内容,我想我已经完成了教程中的所有内容,但是,我的django应用程序并不想使用mysql容器。 从我读过的settings.py文件中,我必须添加下面的代码: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'TheDatabase', 'USER': 'TheUsername', 'PASSWORD': 'ThePassword', 'HOST': 'mysql', 'PORT': '3306', } } 我正在使用docker-compose.yml链接两个docker容器和我docker-compose.yml外观如下: version: '2' services: mysql: image: mysql:latest environment: -MYSQL_DATABASE: TheDatabase -MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' -MYSQL_USER: TheUsername -MYSQL_PASSWORD: ThePassword django: build: . volumes: – .:/app ports: – "443:443" – "8000:8000" links: – mysql 我之所以想这个问题是在两个容器之间的连接上,是因为当我访问https://127.0.0.1/时,我得到了0个问题,但是,只要我尝试以超级用户身份login,错误消息504 Timed-out ,所以我假设问题必须在数据库中。 在Django应用程序的Dockerfile中,我只安装Mysql-Python和libmysqlclient-dev,我应该在django应用程序的容器中安装其他任何东西吗? […]

使用docker-compose创build一个MySQL模式/数据库

我想创build一个MySQL数据库/架构,如果它不存在。 这是我所尝试的: 泊坞窗,compose.yml mysql: image: mysql:5.6.26 environment: – MYSQL_ROOT_PASSWORD=root command: "mysql -uroot -proot < createDB.sql" ports: – "3306:3306" createDB.sql CREATE DATABASE IF NOT EXISTS bignibou; 这是行不通的。 如果不存在,使用docker / docker-compose创build模式的最佳方式是什么?

如何在docker-compose之后执行脚本?

我正在尝试使用docker(-compose)使我的开发过程更容易/可维护。 我不想使用任何卷(如果可能的话)。 为什么在运行'docker-compose up -d'后import.sh没有被执行? 我有以下文件: docker-compose.yml mysql —- import.sh —- db.sql —- Dockerfile 在docker-compose.yml中有: version: '2' services: database: image: mysql build: context: ./mysql/ dockerfile: Dockerfile container_name: mysqltest ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: 123456 在/ mysql / Dockerfile中有: ADD import.sh /tmp/import.sh ADD db.sql /tmp/db.sql RUN /tmp/import.sh 在/mysql/db.sql中有: CREATE DATABASE test1; CREATE DATABASE test2; CREATE DATABASE […]

Docker:如何处理重新启动的节点?

如果启用Docker的虚拟机重新启动(例如由于Azure修补虚拟机或出于任何原因),该节点可以获得新的IP地址(VirtualBox可能导致此问题,而Azure也会导致此问题,从而导致证书不再有效, Docker无法在该机器上启动。 如果我使用Docker Swarm,结果是重新启动的节点将无限期停留在Pending状态。 如果我然后做docker-machine regenerate-certs mymachine然后它再次开始工作。 我应该如何解释这个? 我想没有办法让节点重新启动,那么如何处理呢?

在参数中设置symfonycaching目录

我正在为Symfony应用程序构builddocker环境。 每个应用程序都有一个容器,其中包含链接到应用程序服务器的Web根目录的附加数据容器。 作为基础架构安全强化的一部分,这些数据容器被设置为只读,以防止任何远程代码被利用。 每个应用程序也有一个侧面的汽车容器,允许日志写入。 Symfony当前将caching写入默认的cache_dir位置 ${web_root}/app/cache/${env} 这是在只读数据容器中 当试图启动应用程序时,我得到这个错误 无法写入caching目录 很明显,因为它在只写容器中会发生 我已经设置了我的log_path设置在读写边车logging容器中的只读容器之外的参数 /data/logs/symfony 这工作正常。 我已经阅读了Symfony的食谱如何超越目录结构,但它只build议如何在AppKernal.php中做到这AppKernal.php ,我不想做的path可能会改变取决于如果它在local/uat/prod环境。 我们从我们的构build服务器提供Symfony不同的参数取决于我们正在部署的环境,所以把这个configuration放在这里是有道理的。 有没有人知道是否有可能重写caching目录在configuration而不是编辑AppKernal.php

docker-compose Rails spring不起作用

我用 铁路4.2.5.1在集装箱内运行 Ruby 2.3.1运行wit容器 当我开始 $ docker-compose exec web /bin/bash # ssh into the web server $ bundle exec rails c 我得到了以下错误。 from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:86:in `block in require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/runtime.rb:75:in `require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.13.1/lib/bundler.rb:106:in `require' from /usr/src/app/config/application.rb:7:in `<top (required)>' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:82:in `require' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve' from /usr/local/bundle/gems/spring-1.7.2/lib/spring/application.rb:131:in `block […]