docker-compose介绍及部署LNMP
一、简介
Compose是用于定义和运行多容器Docker应用程序的工具,是docker的服务编排工具,主要应用于构建基于Docker的复杂应用,compose通过一个配置文件来管理多个docker容器,适合组合使用多个容器进行开发的场景。
使用compose,可以使用yaml文件配置应用程序的服务。
然后,通过一个命令,可以从配置中创建和启动所有服务。
官网:https://docs.docker.com/compose/overview/
二、使用
compose适用于所有环境:生产,开发,测试以及CI工作流程。
使用compose基本上是一个三步过程:
1. 用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制。
2. 在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行。
3. 运行docker compose up启动并运行整个应用程序。
字段 |
描述 |
build dockerfile context |
指定dockerfile文件名 构建镜像上下文路径 |
image | 指定镜像 |
command | 执行命令,覆盖默认命令 |
container_name | 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale |
deploy | 指定部署和运行服务相关配置,只能在Swarm模式使用 |
environment | 添加环境变量 |
networks | 加入网络,引用顶级networks下条目 |
ports | 暴漏端口,与-p相同,但端口不能低于60 |
volumes | 挂载宿主机路径或命名卷在顶级volumes定义卷名称 |
restart | 重启策略,默认no,always|on-failurel|unless-stopped |
hostname | 容器主机名 |
================================================================================================
安装docker-compose
一、配置环境
[root@docker ~]# systemctl stop firewalld
[root@docker ~]# iptables -F
[root@docker ~]# setenforce 0
安装docker commpose是在安装好了docker的基础上安装的
安装依赖包
[root@docker ~]# yum install libcurl libcurl-devel libxml2 libxm2-devel pcre-devel zlib-devel lrzsz telnet nmap -y
[root@docker ~]#curl -L \ https://github.com/docker/compose/releases/download/1.21.1/docker-compose- `uname -s`-`uname -m` -o /usr/local/bin/docker-compose
curl: (1) Protocol https not supported or disabled in libcurl
curl: (6) Could not resolve host: Linux-x86_64; 未知的错误
这里报https文件问题,这时上传docker-compose包
二、上传需要的软件包
[root@docker ~]# mkdir docker
[root@localhost docker]# ls
centos-7-x86_64.tar.gz compose_lnmp-190606.zip docker-compose wordpress-4.7.4-zh_CN.tar.gz
[root@docker docker]# unzip compose_lnmp-190606.zip
三、部署docker-compose
[root@docker ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7 将镜像导入到docker
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 c2705e1a484d 2 days ago 589MB
[root@docker ~]# vim docker/compose_lnmp/nginx/nginx.conf
五、将Wordpress放到wwwroot目录下
[root@docker docker]# mv wordpress compose_lnmp/wwwroot/
[root@docker docker]# cd compose_lnmp/wwwroot/
[root@docker wwwroot]# ls
index.html index.php wordpress
将docker-compose加入到/usr/local/bin
[root@docker docker]# chmod +x /usr/local/bin/docker-compose #加权限
[root@docker compose_lnmp]# docker-compose up -d #执行
六、访问测试
最新文章
- BZOJ3198[SDOI2013]SPRING
- servletcontext监听器的启动位置以及tomcat和eclipse的目录结构
- URL动态赋值
- hibernate中使用fetch来决策性能方案
- HTML5的离线储存
- HTML5的在线视频播放方案
- windows中vim-airline研究笔记
- Bound Found [POJ2566] [尺取法]
- Linux 下 解压zip文件出现乱码
- 第二章:安装zabbix过程
- 《汇编语言 基于x86处理器》第十章 - 运行一个 16位实地址汇编程序
- 历届试题 小数第n位-(同余公式+快速幂)
- mysql-5.7安装、配置
- async &; await 异步编程小示例,一看就懂
- Year 2038 problem (2038年问题)
- Initialization of bean failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'dataSource' of bean class [com.liuyang.jdbc.PersonDao]: No property 'dataSource
- webservice的接口协议(HTTPClient 、RestTemplate HttpURLConnection)
- c# 给button添加不规则的图片以及用pictureBox替代button响应点击事件
- Warning: Data truncated for column 'xxxx' at row 1
- iOS:ASIHttpRequest虽不更新,但仍值得详细了解
热门文章
- JS代码的位置
- Mvc-WebAPI特性路由(自定义路由)Demo
- Js Jquery 时间控件显示小时 分钟 秒
- dijkstra算法为什么不能处理带有负边权的图
- Ubuntu18.04 一条命令安装caffe问题
- 小匠_碣 第三周期打卡 Task06~Task08
- Centos7在防火墙中添加访问端口
- 解决 genymotion 安装apk报错 app contains ARM native code and your Genymotion device cannot run ARM instructions
- 四种常见的APP分类界面布局设计案例学习
- SpringMVC框架应用