Tag:

基于Docker的开发环境适用于多个项目

我想知道基于Docker的开发环境和LAMP堆栈的最佳体系结构。 要求 并行处理多个项目 大多数项目都使用相同的LAMP堆栈(为了简单起见,我们假设所有项目都共享相同的堆栈和configuration) 主机运行Windows + VBox + Docker工具箱(即Boot2Docker) 目前的架构 一个共享的开发环境,在每个站点上运行多个容器(web,db,持久数据)和vhostsconfiguration 使用脚本/ Jenkins容器来设置新项目(新的DB,虚拟主机configuration..) 运行自定义Samba容器与Windows计算机共享数据(IDE在Windows上运行) 一如既往有优点。 虽然这样做很容易维护,但是我们无法真正地使用专门的docker-compose.yml文件部署一个特定的项目,而且我们也无法获得“微服务”的所有好处,例如replacePHP /特定站点的MySQL版本。 问题是我们如何使用每个项目docker-compose.yml文件,但仍然有多个项目同时运行(因为所有项目都使用端口80)。 它会更好(甚至有可能吗?)使用每个项目的随机端口,并在这些Web容器之上运行代理层? 这个用例的其他选项或通用devise模式? 谢谢。

无法使用Docker窗口更改卷上文件/文件夹的权限

我试图用Docker窗口更改卷上文件/文件夹的权限。 但是,权限并没有被意外地改变。 环境:主机:Windows 10 Pro Docker版本17.09.0-ce,生成afdb6d4 重现步骤: 使用下面的Dockerfile构build一个图像。 运行容器的容器。 更改文件/文件夹的权限。 Dockerfile: FROM microsoft/windowsservercore CMD [ "powershell" ] 输出: D:\data\docker\sample>docker build -t sample . Sending build context to Docker daemon 1.272GB Step 1/2 : FROM microsoft/windowsservercore —> 2cddde20d95d Step 2/2 : CMD powershell —> Running in dd207fe8b262 —> e0203df155cd Removing intermediate container dd207fe8b262 Successfully built e0203df155cd […]

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

因为当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 […]

Docker镜像仅出现在ID中

我创build并运行docker集装箱。 docker image ls显示以下内容 REPOSITORY TAG IMAGE ID CREATED SIZE model_cnn3_4 trained_linux c29d652864b3 About an hour ago 3.37GB <none> <none> 72fde1eacaff 4 hours ago 3.37GB <none> <none> b1c12b6f4603 21 hours ago 3.37GB <none> <none> 4815f2e0588e 22 hours ago 3.37GB <none> <none> b05ec80bf7ae 24 hours ago 3.37GB model_cnn3_6 latest c266efd55148 27 hours ago 3.35GB model_cnn3_4 latest […]

泊坞窗图像正在运行,但网页错误 – docker

我有一个基本的Django项目,我试图让它通过docker在本地运行。 我有docker文件。 我build立docker形象。 我跑了docker的形象。 它正在运行,但我的网页在屏幕上显示一个错误,因为它没有连接到docker服务器…这是我有: docker文件: FROM python:3 WORKDIR general COPY requirements.txt ./ EXPOSE 8000 RUN pip install -r requirements.txt COPY . . CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] 这是我如何build立和运行这个项目: omars-mbp:split omarjandali$ docker build -t splitbeta/testing2 . Sending build context to Docker daemon 223.7kB Step 1/7 : FROM python:3 —> 79e1dc9af1c1 Step 2/7 : WORKDIR general […]

泊坞窗。 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 ERR_NAME_NOT_RESOLVED http ajax

我有3个简单的微服务(mysql,apirest,gui),我开始使用docker-compose: version: '3.2' services: mysql: image: mysql/mysql-server:5.6 container_name: mysql restart: always volumes: – mysql:/var/lib/mysql/data ports: – "3306:3306" networks: – mynetwork deploy: mode: replicated replicas: 1 environment: – MYSQL_ROOT_PASSWORD=mypwd – MYSQL_USER=myuser – MYSQL_PASSWORD=myuserpwd – MYSQL_DATABASE=my-db apirest: image: …..apirest:latest container_name: apirest restart: always volumes: – apirest:/apirest/tmp ports: – "30000:3000" networks: – mynetwork deploy: mode: replicated replicas: 2 […]

docker-compose up不会创build最新的标签,或者docker版本控制是如何工作的

情况: 我已经从gitlab克隆现有的代码到我的本地机器。 然后我做了: docker-compose -f env/docker-compose.base.yml -f env/dev/docker-compose.yml up -d 那么我有一个标签local的新形象。 然后我在Dockerfile中改变一些东西,然后把代码推到gitlab。 然后我manuelly删除图像: docker rmi -f image_hash 然后第一个命令再次重build新的图像: docker-compose -f env/docker-compose.base.yml -f env/dev/docker-compose.yml up -d 那么我有标签local新形象。 (而不是latest ,但为什么?) 那么我想要推动这个形象。 我推了它。 然后在亚马逊ECR,我看到与标签“本地”的形象..:/ 我真的很困惑,你们如何处理版本化docker图像的stream程? 我在登台服务器上有一个脚本,用于最新的图像。

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 […]