php getimagecompose,Docker进阶:Dockerfile以及docker-compose工具

Dockerfile:用来定制镜像的文件

Docker-compose:用来部署容器集群的命令工具

Dockerfile

基本语法

FROM:指定基础镜像,格式一般是FROM  :

FROM必须是Dockerfile的第一条非注释的命令

是镜像名,是指定版本,不写的话,默认是latest版本

RUN:指在镜像中运行的shell命令(默认命令是ubuntu的命令)

多个shell命令用&&来分开,换行的命令后面跟shell一致,用\分开

EXPOSE:指的是容器在运行的时候,监听的端口

ADD:将文件添加到容器中,格式: ADD   

是指本地文件的路径或者一个URL,指的是容器内文件的路径

如果本地的或者URL获得的文件是压缩文件,比如:tar、zip等,添加到容器,docker会自动解压

COPY:将文件复制添加到容器中,格式:COPY   

跟ADD很像,但是有区别,COPY不能是URL,压缩文件不会自动解压

WORKDIR: 指定容器的工作路径

举例(php镜像为例,文件名就是Dockerfile)

FROM php:7.0-fpm

WORKDIR /var/www

RUN apt-get update && apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libpng12-dev \

libmemcached-dev \

vim \

git \

&& docker-php-ext-install pdo_mysql \

&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

&& docker-php-ext-install gd \

&& docker-php-ext-install mysqli \

&& docker-php-ext-install bcmath \

&& pecl install memcached \

&& echo "extension=memcached.so" > /usr/local/etc/php/conf.d/20_memcached.ini

COPY ./composer.phar /usr/local/bin/composer

ADD ./config/php.ini /usr/local/etc/php/php.ini

RUN chmod a+x /usr/local/bin/composer

EXPOSE 9000

运行

写好Dockerfile之后,想要构建这个镜像的话,在Dockerfile的目录下,运行一条命令

$ docker build .

如果镜像多了,每个都要去手动执行一次build,太麻烦了

docker-compose

安装

$ pip install -U docker-compose

mac下安装好docker直接就安装上了

ubuntu等linux系统上上还可以用apt-get install docker-compose来安装

使用

与Dockerfile文件结合,创建一个名为docker-compose.yml的文件

# Compose区分Version 1和Version 2。

# Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。

version: "2"

services:

nginx:

build: ./nginx

ports:

- "127.0.0.1:80:80"

links:

- "php-fpm"

volumes:

- ~/workspace/web/www:/var/www

- ~/workspace/nginx/conf.d:/etc/nginx/conf.d

php-fpm:

build: ./php-fpm

ports:

- "127.0.0.1:9001:9000"

volumes:

- ~/workspace/web/www:/var/www

links:

- "mysql"

- "redis"

- "memcache"

mysql:

build: ./mysql

ports:

- "127.0.0.1:3307:3306"

volumes:

- ~/usr/local/var/mysql:/var/lib/mysql

environment:

MYSQL_ROOT_PASSWORD: "root"

# MYSQL_DATABASE: "app"

# MYSQL_USER: "app"

# MYSQL_PASSWORD: "123123"

redis:

build: ./redis

ports:

- "127.0.0.1:6379:6379"

memcache:

build: ./memcache

ports:

- "127.0.0.1:11211:11211"

与之配合的目录结构

326971df4b900c7375dc6a3ab37ceac7.png

├── docker-compose.yml

├── memcache

│   └── Dockerfile

├── mysql

│   └── Dockerfile

├── nginx

│   └── Dockerfile

├── php-fpm

│   ├── Dockerfile

│   ├── composer.phar

│   └── config

│   └── php.ini

└── redis

└── Dockerfile

构建

写好这些文件之后,构建只需要一条命令

$ docker-compose up -d

重新构建

$ docker-compose up –d --build

查看运行的日志

$  docker-compose logs

以上的命令都必须在与docker-compose.yml同级的目录下运行

查看单个容器的运行日志

$  docker  logs  /

这样后台就会有各个镜像所运行的容器了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis的安装以及使用

第一步,去官网下载一个压缩包到本地解压即用,绿色软件,不用其他操作,点击Download下载即可: Introduction to Redis | RedisLearn about the Redis open source projecthttps://redis.io/docs/about/第二步&#xff0…

oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解

行转列一张表查询结果为--行转列select years,(select amount from Tb_Amount as A where month1 and A.yearsTb_Amount.years)as m1,(select amount from Tb_Amount as A where month2 and A.yearsTb_Amount.years)as m2,(select amount from Tb_Amount as A where month3 and…

js十秒没有点击怎么判断_MAC口红怎么判断真假?没批号就没有生产日期,网友:品控太差...

一般来说,MAC的口红产品,底部都会有三位编码,这是该款口红的批号。因像MAC这类国外美妆护肤品牌,是不会将生产日期明确的标注在产品上,都是将其编码成批号,在标注在外包装或者产品的侧面、底部等边缘位置。…

go run main.go 参数_介绍一款Go项目热编译工具gowatch

使用场景在golang项目编写过程中,需要对项目不断的进行构建go build并调试以快速发现问题,而我们每次进行手动的进行go build又太重复,所以写了这么一个工具gowatch来实时的监听文件的改动并编译运行,大大提升开发效率。快速入门安…

安卓rpg绅士游戏资源_海贼无双3(动作游戏)——电脑安卓单机游戏下载资源分享...

点击上方蓝字关注我们01游戏简介:游戏名称:海贼无双3其它名称:One Piece - Pirate Warriors 3游戏类型:动作游戏开发发行:Omega Force游戏平台:PC整理时间:2020-04-25官方网址:http:…

11210怎么等于24_想要消耗100大卡热量,怎么做才最简单?

减肥,最根本的原理就是制造热量差,从饮食上限制热量的摄入,调理体质让基础代谢更高,运动来进一步增加消耗,当热量差达到7000大卡左右的时候,就能瘦下来1kg的纯脂肪!美食当前,自然要先…

连接linux工具Mtr,Linux常用网络工具:路由扫描之mtr

除了上一篇《Linux常用网络工具:路由扫描之traceroute》介绍的traceroute之外,一般Linux还内置了另一个常用的路由扫描工具mtr。mtr在某些方面比traceroute更好用,它可以实时显示经过的每一跳路由的信息,并不断进行探测。tracerou…

redis rua解决库存问题_【150期】面试官:Redis的各项功能解决了哪些问题?

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅阶段汇总集合:一百期面试题汇总先看一下Redis是一个什…

启动盘Linux windows,Linux 中创建 USB 启动盘来拯救 Windows 用户

人们经常要求我帮助他们恢复被锁死或损坏的 Windows 电脑。有时,我可以使用 Linux USB 启动盘来挂载 Windows 分区,然后从损坏的系统中传输和备份文件。有的时候,客户丢失了他们的密码或以其他方式锁死了他们的登录账户凭证。解锁账户的一种方…

linux桌面版自动更新关闭了,桌面应用|开启 Ubuntu 系统自动升级

在学习如何开启Ubuntu系统自动升级之前,先解释下为什么需要自动升级。默认情况下,ubuntu每天一次检查更新。但是一周只会弹出一次软件升级提醒,除非当有安全性升级时,才会立即弹出。所以,如果你已经使用Ubuntu一段时间…

做自适应网站专业乐云seo_什么叫网站优化-网站建设-SEO优化

公司致力于企业品牌营销策划、网站建设、网站优化、五网竞价推广、商城建设、小程序开发、搜索引擎推广、SEO及企业品牌整合营销、全网整合营销霸屏推广等专业一站式网络全包服务。为不同企业品牌量身定制合适的设计方案,提供专业一站式网站服务平台、网络广告投放平…

跨域会报40几_关于跨域,以及跨域的几种方式

首先我们来想一想为什么会有跨域这个名词的出现呢?跨域又是什么呢?为何要跨域?浏览器的同源策略又是什么?怎么解决?jsonp又是什么?跨域的原理又是什么呢?名词解释:跨域:浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和…

linux用户的配置文件保存在哪里,使用配置文件(.settings、.config)存储应用程序配置...

引言我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。…

4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...

每个城市都有自己盛产的食材,最终也被制作成几代都传延至今的美食,这便是美食的传承。今天小编就来说说云南美食,下面这云南美食界“5巨头”,谁才是你心里的NO.1?你家乡的那道菜也在列哦~云南大理:白族泥鳅…

linux+基因组字符替换,liftover基因组版本直接的coordinate转换

下载地址:http://hgdownload.cse.ucsc.edu/admin/exe/使用方法:【从hg38转到hg19】因为主流的基因组版本还是hg19,但是时代在进步,已经有很多信息都是以hg38的形式公布出来的了。比如,我下载了pfam.df这个protein domain注释文件,…

elinput内容过长显示悬浮框_excel中一直被忽视的名称框,用好了也能提高效率

在excel左上角功能区下方,有一个名称框(下图红框中的部分)。大部分朋友应该没注意过这个地方有什么作用,或者仅仅知道名称框中会显示单元格的位置,因此在操作中这项功能无法表现出其真正的效果。本文就为大家介绍一下关于名称框的一些实用功能…

同步轨道进入过程_“收官之星”定点成功!北斗三号卫星全部进入长管模式

◎ 徐新芳 科技日报记者 付毅飞6月30日14时15分,北斗三号全球卫星导航系统最后一颗组网卫星成功定点于距离地面约36000公里的地球同步轨道,顺利进入长期运行管理模式。卫星有效载荷已完成开通,经过遥测数据判读,星载基准频率合成器…

将当前的head推送到远程_Git 通俗易懂系列 三、远程仓库和标签

远程仓库git remote :列出每个远程库的简短名字。如:origin。git remote -v :显示对应的克隆地址,如:originhttp://gitlab.xxx.corp/xxx.git 添加远程库:git remote add pb git://github.com/xxx.gitpb 指代对应的仓库…

linux中cv调用摄像头,ubuntu中opencv调用摄像头

ubuntu中opencv调用摄像头ubuntu中opencv调用摄像头文章目录一、Ubuntu中安装opencv二、关于Linux如何开启摄像头1.安装VMvareTools,这个是真的强,解决了很多常遇到的问题,比如Linux和Windows无法交互粘贴复制的问题。2.要保证Linux这边能开启…

为什么只有奇次谐波_关于开关电源谐波失真,这有一份测量分析方法经验分享!...

无论是从保护电力系统的安全还是从保护用电设备和人身的安全来看,严格控制并限定电流谐波含量,以减少谐波污染造成的危害已成为人们的共识。总谐波失真THD与功率因数 PF 的关系市面上很多的 LED 驱动电源,其输入电路采用简单的桥式整流器和电…