docker-compose 编排lnmp容器

https://gitee.com/lichenxin/docker-compose-mnpr

安装

# 二进制包安装
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 为安装脚本添加执行权限
chmod +x /usr/local/bin/docker-compose docker-compose --version # bash 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose # 卸载
rm /usr/local/bin/docker-compose # 自动构建镜像并使用镜像启动容器
docker-compose up [-d 后台启动] #Docker Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。
#Docker Compose运行目录下的所有文件(docker-compose.yml, extends文件或环境变量文件等)组成一个工
#程(默认为docker-compose.yml所在目录的目录名称)。一个工程可包含多个服务;每个服务中定义了容器
#运行的镜像、参数和依赖,一个服务可包括多个容器实例。

docker-compose.yml常用命令


# build 配置构建时的选项 build: ./dir build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1 # command 覆盖容器启动后默认执行的命令
command: bundle exec thin -p 3000 command: [bundle, exec, thin, -p, 3000] # dns 配置dns服务器
dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9 # dns_search 配置DNS的搜索域名
dns_search: example.com
dns_search:
- dc1.example.com
- dc2.example.com # environment 环境变量设置
environment:
RACK_ENV: development
SHOW: 'true'
SESSION_SECRET: environment:
- RACK_ENV=development
- SHOW=true
- SESSION_SECRET # env_file 从文件中获取环境变量,可指定一个文件路径或路径列表
#通过 docker-compose -f FILE 指定了Compose文件,那么env_file中的路径是Compose文件所在目录的相对路径
#使用environment指定的环境变量会覆盖env_file指定的环境变量
env_file: .env env_file:
- ./common.env # 共用
- ./apps/web.env # web用
- /opt/secrets.env # 密码用 # expose 暴露端口,只将端口暴露给连接的服务,而不暴露给宿主机
expose:
- "3000"
- "8000" # external_links 连接到docker-compose.yml外部的容器,甚至并非Compose管理的容器
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql # image 指定镜像名称或镜像id,如果本地不存在该镜像,Compose会尝试下载该镜像
image: java8 # links 连接到其他服务的容器。可以指定服务名称和服务别名( SERVICE:ALIAS ),也可只指定服务名称
web:
links:
- db
- db:database
- redis services:
proxy:
build: ./proxy
networks:
- front https://blog.csdn.net/Kiloveyousmile/article/details/79830810
https://blog.csdn.net/henni_719/article/details/89376111
https://docs.docker.com/compose/compose-file/
networks:
default:
# Use a custom driver
driver: custom-driver-1
# 使用已存在的网络
external:
name: my-pre-existing-network front:
# Use a custom driver
driver: custom-driver-1
back:
# Use a custom driver which takes special options
driver: custom-driver-2
driver_opts:
foo: "1"
bar: "2" # network_mode 设置网络模式
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]" # ports 暴露端口信息 可使用HOST:CONTAINER 的格式,也可只指定容器端口(此时宿主机将会随机选择端口),类似于docker run -p
# 当使用HOST:CONTAINER 格式映射端口时,容器端口小于60将会得到错误的接口,因为yaml会把xx:yy 的数字解析为60进制。因此,建议使用字符串的形式
ports:
- "3000"
- "3000-3005"
- "8000:8000"
- "9090-9091:8080-8081"
- "49100:22"
- "127.0.0.1:8001:8001"
- "127.0.0.1:5000-5010:5000-5010" # volumes 卷挂载路径设置 可以设置宿主机路径 (HOST:CONTAINER) ,也可指定访问模式 (HOST:CONTAINER:ro)
volumes:
# Just specify a path and let the Engine create a volume
- /var/lib/mysql # Specify an absolute path mapping
- /opt/data:/var/lib/mysql # Path on the host, relative to the Compose file
- ./cache:/tmp/cache # User-relative path
- ~/configs:/etc/configs/:ro # Named volume
- datavolume:/var/lib/mysql # volumes_from 从另一个服务或容器挂载卷。可指定只读(ro)或读写(rw),默认是读写(rw)。
volumes_from:
- service_name
- service_name:ro
- container:container_name
- container:container_name:rw https://docs.docker.com/compose/compose-file/

http://www.itmuch.com/docker/20-docker-compose-install/

https://yeasy.gitbooks.io/docker_practice/content/compose/introduction.html

docker-compose常用命令

docker-compose --help你会看到如下这么多命令

build               构建或重新构建服务。服务被构建后将会以project_service 的形式标记
bundle Generate a Docker bundle from the Compose file
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
images List images kill 停止指定服务的容器
docker-compose kill containerId port Print the public port for a port binding
docker-compose port eureka 8761 # 输出eureka服务8761端口所绑定的公共端口 logs View output from containers up Create and start containers 构建、创建|重新创建、启动,连接服务的相关容器
docker-compose up # -d 可在后台启动并运行所有容器 ps List containers 列出所有容器
docker-compose ps pull Pull service images 下载服务镜像
push Push service images pause Pause services restart Restart services rm Remove stopped containers 删除指定服务的容器
docker-compose rm eureka run Run a one-off command 在一个服务上执行一个命令
docker-compose run web bash scale Set number of containers for a service 设置指定服务运行容器的个数 以service=num的形式指定
docker-compose scale user=3 movie=3 start Start services 启动指定服务已存在的容器
docker-compose start eureka stop Stop services 停止已运行的容器
docker-compose stop eureka top Display the running processes
unpause Unpause services version Show the Docker-Compose version information docker-compose help COMMAND
#查看docker-compose build的帮助
docker-compose help build    3.常用命令 docker-compose up -d nginx 构建建启动nignx容器 docker-compose exec nginx bash 登录到nginx容器中 docker-compose down 删除所有nginx容器,镜像 docker-compose ps 显示所有容器 docker-compose restart nginx 重新启动nginx容器 docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器 docker-compose build nginx 构建镜像 。 docker-compose build --no-cache nginx 不带缓存的构建。 docker-compose logs nginx 查看nginx的日志 docker-compose logs -f nginx 查看nginx的实时日志 docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 docker-compose events --json nginx 以json的形式输出nginx的docker日志 docker-compose pause nginx 暂停nignx容器 docker-compose unpause nginx 恢复ningx容器 docker-compose rm nginx 删除容器(删除前必须关闭容器) docker-compose stop nginx 停止nignx容器 docker-compose start nginx 启动nignx容器

version: '2'
services:
mysql:
image: mysql:5.7
expose:
- "3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
wordpress:
image: wordpress
ports:
- "80:80"
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=123456 FROM mysql:5.6 COPY docker-entrypoint.sh /usr/local/bin/
COPY ./sql /sql RUN chmod -R +x /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 3306
CMD ["mysqld"] FROM centos:latest
RUN \
yum update -y && \
yum install -y epel-release && \
yum install -y iproute python-setuptools hostname inotify-tools yum-utils which jq && \
yum clean all && \
easy_install supervisor
COPY container-files /
RUN chmod +x /config/bootstrap.sh
VOLUME ["/data"]
ENTRYPOINT ["/config/bootstrap.sh"]

https://blog.csdn.net/u010882691/article/details/82259033

https://blog.csdn.net/sinat_27143551/article/details/79873050

https://blog.csdn.net/hujun_123456/article/details/80547473

spring cloud 与 docker-compose构建微服务

https://blog.csdn.net/vchy_zhao/article/details/70238432

https://testerhome.com/topics/12768

https://www.cnblogs.com/senlinyang/p/8856975.html

https://www.cnblogs.com/moxiaoan/p/9299404.html

https://blog.csdn.net/shen_gang/article/details/40619073

https://blog.csdn.net/a745233700/article/details/80452862

https://blog.csdn.net/weixin_39332806/article/details/80420411

分析Mysql 5.6的Dockerfile

https://yq.aliyun.com/articles/68245

Docker Compose部署lnmp

Docker Compose搭建mysql主从复制

https://www.cnblogs.com/bigberg/p/8884788.html

Docker-Compose部署nginx代理Tomcat集群

Docker Compose部署 nginx代理Tomcat集群

https://download.csdn.net/download/u011781521/10440466

Docker Compose 运行 Tomcat

https://blog.csdn.net/weixin_38187317/article/details/81487301

https://github.com/Bigberg/docker

https://blog.csdn.net/zhang__rong/article/details/88697544

https://blog.csdn.net/a745233700/article/details/80452862

https://blog.csdn.net/weixin_39332806/article/details/80420411

Docker mysql 主从

docer compose学习的更多相关文章

  1. Jetpack Compose学习(1)——从登录页开始入门

    原文地址:Jetpack Compose学习(1)--从登录页开始入门 | Stars-One的杂货小窝 Jetpack Compose UI在前几天出了1.0正式版,之前一直还在观望,终于是出了正式 ...

  2. Jetpack Compose学习(2)——文本(Text)的使用

    原文: Jetpack Compose学习(2)--文本(Text)的使用 | Stars-One的杂货小窝 对于开发来说,文字最为基础的组件,我们先从这两个使用开始吧 本篇涉及到Kotlin和DSL ...

  3. Jetpack Compose学习(3)——图标(Icon) 按钮(Button) 输入框(TextField) 的使用

    原文地址: Jetpack Compose学习(3)--图标(Icon) 按钮(Button) 输入框(TextField) 的使用 | Stars-One的杂货小窝 本篇分别对常用的组件:图标(Ic ...

  4. Jetpack Compose学习(4)——Image(图片)使用及Coil图片异步加载库使用

    原文地址 Jetpack Compose学习(4)--Image(图片)使用及Coil图片异步加载库使用 | Stars-One的杂货小窝 本篇讲解下关于Image的使用及使用Coil开源库异步加载网 ...

  5. Jetpack Compose学习(5)——从登录页美化开始学习布局组件使用

    原文:Jetpack Compose学习(5)--从登录页美化开始学习布局组件使用 | Stars-One的杂货小窝 本篇主要讲解常用的布局,会与原生Android的布局控件进行对比说明,请确保了解A ...

  6. Jetpack Compose学习(6)——关于Modifier的妙用

    原文: Jetpack Compose学习(6)--关于Modifier的妙用 | Stars-One的杂货小窝 之前学习记录中也是陆陆续续地将常用的Modifier的方法穿插进去了,本期就来详细的讲 ...

  7. Jetpack Compose学习(7)——MD样式架构组件Scaffold及导航底部菜单

    Jetpack Compose学习(7)--MD样式架构组件Scaffold及导航底部菜单 | Stars-One的杂货小窝 Compose给我们提供了一个Material Design样式的首页组件 ...

  8. Jetpack Compose学习(8)——State及remeber

    原文地址: Jetpack Compose学习(8)--State状态及remeber关键字 - Stars-One的杂货小窝 之前我们使用TextField,使用到了两个关键字remember和mu ...

  9. Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)

    原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基 ...

随机推荐

  1. Hash和HashCode深入理解

    目录介绍1.Hash的作用介绍1.1 Hash的定义1.2 Hash函数特性1.3 Hash的使用场景2.如何判断两个对象相等2.1 判断两个字符串2.2 判断两个int数值2.3 其他基本类型3.H ...

  2. 阿里云 配置ssl 在nginx上

    写给自己的备忘录: 很乱 如果你也是 配置nginx ssl 可以给我留言 ,我是为了 捣鼓微信小程序后台 需要https 阿里云有免费一年的 ssl服务 链接 https://www.aliyun. ...

  3. mysql修改用户密码的方法及命令

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  4. C# 对Excel操作与分析

    今天帮现在饿公司写个工具,要动态读excel上的ip地址与端口号,来更改IE的代理地址,由于好久没写Excel的操作了,只能查阅以前的项目,总结一下: 首先我们要引用我们的com接口的excelMic ...

  5. 下载安装 STS(Spring Tool Suite),推荐对应 Eclipse 版本号,适用于Windows32位(xp、2003)

    sts下载地址:https://spring.io/tools/sts/legacy 虽然sts内置了版本对应的eclipse,仍推荐使用当前环境下稳定使用的eclipse版本. Start 找到ec ...

  6. 工程C++基础

    大家好,我是老A.今天我们要学习的是工程C++,这是一个不可描述的东西.我主要讲的是template. template的用处是装逼,所以很重要. C++配备了函数模板和类模板.函数模板就是我们平时的 ...

  7. Mybatis控制台打印sql

    mybatis-config.xml配置如下: <configuration> <settings> <setting name="lazyLoadingEna ...

  8. 源码解析之AQS源码解析

    要理解Lock首先要理解AQS,而要理解并发类最好的方法是先理解其并发控制量不同值的含义以及该类运作流程,然后配合一步步看源码.该类有一个重要的控制量是WaitStates,节点的状态值. /** w ...

  9. python入门(五):切片列表元祖字典

    1.切片 针对序列,使用切片可以获得我们想要的内容 序列:字符串.列表.元祖 特点:可以使用坐标获取某一个值.坐标是从0开始算 >>> s="0123456789" ...

  10. linux grep (linux查找关键字在php出现的次数)

    http://www.th7.cn/system/lin/201508/127681.shtml 查找CleverCode在当前目录以及子目录,所有的php出现大于0的次数. # find -type ...