Docker-compose单机容器集群编排

yml文件概述

是一种标记语言,以竖列的形式展示序列化的数据,可读性高。 类似于json格式,语法简单。 YAML通过缩进来标识数据结构,连续的项目用-减号来表示。

yml文件使用注意事项:

  • 1、大小写敏感
  • 2、通过缩进表示层级关系
  • 3、只能用空格缩进,不能用tab键
  • 4、可以使用#注释
  • 5、符号字符后面都有一个空格
  • 6、单引号引起来的字符,会被当做普通字符串处理,""#&"双引号里面是特殊字符,就是本义

Docker-compose单机容器编排

Dockerfile:先配置好文件,然后build镜像,再创建容器
Dockerfile-compose:既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。

Docker-compose核心就是yml文件,可以定义容器的一切,通过yml配置直接运行容器。

Docker-compose的常用命令:
build:构建服务
ps:列出由docker-compose编排出来的容器
up:创建和启动容器
top:显示容器的进程
logs:查看容器的输出日志
down:删除容器、网络、数据卷
exec:再容器中执行命令
stop/start/restart:停止,启动,重启容器
scale:指定启动的容器数量(副本)

Docker-compose搭建nginx

cd /opt
--上传docker-compose-linux-x86_64--
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin/
chmod 777 /usr/local/bin/docker-compose
docker-compose -v

mkdir compose-nginx
cd compose-nginx
mkdir nginx
cd nginx
--上传nginx-1.22.0.tar.gz--
vim Dockfile

FROM centos:7
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make && useradd -M -s /sbin/nologin nginx
ADD nginx-1.22.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.22.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx  \
--with-http_stub_status_module && make -j 4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
ENTRYPOINT ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
cd ..
mkdir www
cd www
echo this is nginx1 > index.html
cd /opt/compose-nginx
tree

Docker-compose单机容器集群编排_第1张图片

vim docker-compose.yml

#指定docker-compose的文件版本
version: '3'
#定义需要运行的服务
services:
#指定创建容器的名字
  nginx:
    container_name: web1
#指定容器的主机名
    hostname: nginx
#指定构建nginx容器的上下文以及Dockerfile
    build:
#指定Dockerfile的位置,如果用镜像则换成image:
      context: /opt/compose-nginx/nginx
      dockerfile: Dockerfile
#指定宿主机和容器的端口映射关系
    ports:
      - 1213:80
#声明给容器指定的IP地址
    networks:
#自定义网络
      mynet:
        ipv4_address: 172.18.0.10
    volumes:
      - /opt/compose-nginx/www:/usr/local/nginx/html
#创建自定义网桥接口配置
networks:
  mynet:
#声明网段的类型
    driver: bridge
#声明网段,ip地址的管理和配置
    ipam:
#子网配置,指定ip地址的范围
      config:
        - subnet: 172.18.0.0/16

Docker-compose单机容器集群编排_第2张图片

Docker-compose单机容器集群编排_第3张图片

docker-compose -f docker-compose.yml up -d

-------------------------------------------------------------------------------------------
docker-compose:命令开头,使用docker-compose进行容器编排
-f:使用特定的compose的模板文件,一般都用docker-compose.yml
-p:project-name:指定项目名称,如果不加会使用目录名称
-d:后台运行
-------------------------------------------------------------------------------------------

Docker-compose单机容器集群编排_第4张图片

Docker-compose单机容器集群编排_第5张图片

浏览器访问:20.0.0.10:1213

Docker-compose单机容器集群编排_第6张图片

Docker-compose搭建LNMP

cd /opt
mkdir lnmp
cd lnmp
mkdir ngin mysql php
--Dockerfile文件配置具体参考上篇博客--
vim docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: /opt/lnmp/nginx/
      dockerfile: Dockerfile
    ports:
      - 1314:80
    container_name: nginx_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.10
    volumes:
      - "nginx-data:/usr/local/nginx/html/"

  mysql:
    hostname: mysql
    build:
      context: /opt/lnmp/mysql
      dockerfile: Dockerfile
    ports:

   - 3306:3306
     ntainer_name: mysql_server
         networks:
           lnmp:
     ipv4_address: 172.111.0.20
         privileged: true
     #虽然我们登录容器,显示的是root用户,没有给privileged的话只是个伪管理员,一旦privileged: true,则容器内的root用户和宿主机的root用户拥有一样的权限,在生产中能不给就不给。
         volumes:
        - "mysql-data:/usr/local/mysql/"
          php:
              hostname: php
              build:
                context: /opt/lnmp/php
                dockerfile: Dockerfile
              ports:
             - 9000:9000
               ntainer_name: php_server
                   networks:
                     lnmp:
               ipv4_address: 172.111.0.30
                   volumes:
                  - "nginx-data:/usr/local/nginx/html/"
                    "mysql-data:/usr/local/mysql/"

networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.111.0.0/16

volumes:
  nginx-data:
  mysql-data:
docker-compose -f docker-compose.yml up -d

Docker-compose单机容器集群编排_第7张图片

浏览器访问:http://20.0.0.10:1314/wordpress/index.php

Docker-compose单机容器集群编排_第8张图片 

你可能感兴趣的:(docker,java,容器)