Tag: 窗撰写

如何正确共享两个容器之间的相同主机卷?

因为当Docker Compose改变了它的组成文件版本时, volumes_from消失了,我在如何在不同的容器之间共享一个卷时感到有点volumes_from 。 看下面的例子,一个PHP应用程序住在一个PHP-FPM容器中,Nginx住在第二个。 version: '3.3' services: php: build: context: ./docker/php7-fpm args: TIMEZONE: ${TIMEZONE} env_file: .env volumes: – shared-volume:/var/www nginx: build: ./docker/nginx ports: – 81:80 depends_on: – php volumes: – shared-volume:/var/www volumes: shared-volume: driver_opts: type: none device: ~/sources/websocket o: bind 为了使应用程序的工作当然Nginx不得不访问PHP文件,并有volumes_from帮助我们很多。 现在这个选项已经没有了。 当我尝试命令docker-compose up它结束与以下消息: 错误:对于websocket_php_1无法创build容器的服务php:错误,同时挂载卷选项:type ='none'device ='〜/ sources / websocket'o ='绑定':没有这样的文件或目录 如何正确共享两个容器之间的相同主机卷?

manage.py不会login到树莓派上的Docker的stdout / stderr

在Raspberry Pi 2上,我使用image resin/rpi-raspbian:stretch来运行Django应用程序。 在我的Dockerfile中,我安装python3软件包并使用ENTRYPOINT python3 manage.py runserver 0:8000来启动应用程序。 这工作,但是当我的代码抛出错误,我没有使用docker log命令输出。 例 我有一个ImportError。 当我使用docker exec手动运行命令时,我得到了预期的exception: pi@pi2:/etc/docker/container/pms $ sudo docker exec -it pms_app_1 python3 manage.py runserver 0:8000 Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x75de3228> […] ImportError: No module named 'ws4redisfrontend' 但是当我使用docker-compose运行容器然后打开日志时,它们是空的: pi@pi2:/myapp $ sudo docker logs myapp_1 pi@pi2:/myapp $ 这种行为只存在于manage.py调用中。 例如,当我像这样扩展入口点时: ENTRYPOINT python3 […]

泊坞窗。 MySQL映像。 无法更改my.cnf文件

我有这样一个docker-compose.yml : database: container_name: test_db image: mysql:5.7 volumes: – ./docker/my.cnf:/etc/my.cnf environment: – "MYSQL_ROOT_PASSWORD=root" – "MYSQL_DATABASE=test_db" ports: – "3306:3306" volumes: – test_db_data:/var/lib/mysql volumes: test_db_data: 我想编辑sql_mode 。 ./docker/my.cnf包含: [mysqld] sql_mode="" 但是当我从本地机器连接到数据库并运行SELECT @@sql_mode; 我收到: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 我究竟做错了什么?

docker工人运行mysql客户端运行mysql容器

我只是进入docker,并有一个简单的MySQL 5.5设置使用官方形象 。 这是我的相关文件。 #Dockerfile FROM mysql:5.5 ENV MYSQL_ROOT_PASSWORD password #docker-compose.yml db: build: . 现在我运行docker-compose build然后是docker-compose up ,它将提供以下输出 db_1 | 150828 14:04:17 [Note] mysqld: ready for connections. db_1 | Version: '5.5.45' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL) 现在在另一个terminal上运行docker-compose run db bash并进入bash shell。 但在这个shell中,如果我尝试连接mysql客户端,我得到一个错误。 root@94a43b1f5be0:/# mysql -u root -p ERROR 2002 (HY000): Can't connect […]

为docker-client for java设置docker中容器的端口

我不能在docker中为容器设置publicPort和privatePort。 我创builddocker容器与Java库docker-client为Java https://github.com/spotify/docker-client 我已经在本地创build了一个docker镜像“mobillogix / selenium-chrome”。 DockerClient docker = DefaultDockerClient.fromEnv()。build(); // Bind container ports to host ports final String[] ports = {"44444", "59004"}; final String[] ports1 = {"4444", "5900"}; final Map<String, List<PortBinding>> portBindings = new HashMap<String, List<PortBinding>>(); for (String port : ports) { List<PortBinding> hostPorts = new ArrayList<PortBinding>(); hostPorts.add(PortBinding.of("0.0.0.0", port)); portBindings.put(port, hostPorts); } final HostConfig […]

在docker-compose运行命令后,Docker compose:命令

我遵循本教程: Python Docker撰写在本教程中,它将创build一个docker撰写文件: version: '2' services: db: image: postgres web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: – .:/code ports: – "8000:8000" depends_on: – db 之后,运行docker compose命令来构build项目: docker-compose run web django-admin.py startproject composeexample . 我不知道的是:当我阅读另​​一个docker教程时,我们经常运行docker-compose run来运行项目。 这些命令的含义是什么: web django-admin.py startproject composeexample . 据我所知,这个命令意味着:首先创build一个python项目,然后调用docker-compose.yml进行configuration。 对?

Docker撰写JVM参数

我编写了一个java应用程序,它接受一个环境variables,它需要一个参数来为JWT令牌salt键设置一个键。 有没有办法让我在Docker Compose中传递命令variables? java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar –key=blah 然后运行Docker镜像 docker run -p 8080:8080 docker_image –key=blah

Django应用程序服务器挂起/不会在Docker Compose中启动

我试图在Docker Compose中启动一个简单的Django应用服务器,并与Postgres容器配对。 它像我所期望的一样,启动入口点脚本,但它似乎从来没有真正运行Django应用程序服务器(这应该是最后一步,并保持运行)。 我知道它运行入口点脚本,因为迁移步骤运行。 应用程序服务器从不输出任何预期的输出,而8000端口从不响应。 如果有问题,我正在使用Docker for Mac(stable)。 我的Django应用程序容器的Dockerfile: FROM ubuntu:16.04 COPY my_app /my_app RUN apt-get update \ && apt-get install -y python3 python3-psycopg2 python3-pip RUN apt-get install -y nodejs npm WORKDIR /my_app RUN pip3 install -r requirements.txt RUN npm install bower RUN python3 manage.py bower install RUN python3 manage.py collectstatic –no-input EXPOSE 8000 COPY […]

如何正确设置数据卷容器?

我想设置一个数据卷容器与另一个LAMP容器一起工作,但我开始与Docker一起工作,所以我有一些疑虑。 所以我将运行两个容器,我们将其命名为(仅作为示例): 灯容器 数据容器 我知道一次运行多个容器的唯一方法是使用Docker Compose,但我不知道如何设置compose.yml文件。 让我们说lamp-container有它存储数据的以下目录: /data/www # meant to contain web content /data/www/default # root directory for the default vhost /data/logs/ # Nginx, PHP logs /data/tmp/php/ # PHP temp directories 我想将它们分别映射到/home/<username>/container_files (这是运行docker的主机上的本地目录)下的主机上的本地目录。 例如: /data/www => /home/<username>/container_files/data/www /data/www/default => /home/<username>/container_files/data/www/default /data/logs/ => /home/<username>/container_files/data/logs /data/tmp/php/ => /home/<username>/container_files/data/php 任何一点都可以用compose.yml示例文件指向正确的方向? 我已经阅读文档,但对我来说很困惑,因为我通常使用虚拟机,并在许多方面与容器不同。 注意:我应该补充说,这是一个主机中的一个用户而不是一个主机中的多个用户。 所以每个想要使用这个设置的人都应该有自己的主机下的设置。

Docker – 如何在docker-compose.yml中设置Apache + PHP

我使用这个来设置PHP的nginx: nginx: image: nginx:latest ports: – 8080:80 volumes: – ./code:/code – ./site.conf:/etc/nginx/conf.d/site.conf links: – php php: image: php:7-fpm volumes: – ./code:/code 但是Apache呢? 如何在docker-compose.yml中设置Apache + PHP? 遵循本指南 : version: '2' services: php: build: php ports: – "80:80" – "443:443" volumes: – ./php/www:/var/www/html 错误: ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top […]