dcokercompose

安装dockercompose

mv docker-compose-linux-x86_64 docker-compose

mv docker-compose /usr/local/bin/

chmod 777 /usr/local/bin/docker-compose

docker-compose -v

yaml文件:

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

Yaml文件使用的注意事项:

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

YAML文件的基本数据结构:

声明变量

(准确的来说应该叫标量,单个的不可再分的值,包含的类型字符串,整数,布尔类型):

Name :wang

Age :24

Handsome : yes

Wan : no

List(列表):表示有序的元素集合

Class:

dcokercompose_第1张图片

键值对映射:声明一个键值,在里面

例如:

dcokercompose_第2张图片

注释:

dcokercompose_第3张图片

引用:

 Student:&id1

   Name: guoqi

   Age:20

Stuent1:*id1

用&来定义锚点,用*来进行引用

字符串引号:

Name: ‘guoqi’

Name: ‘guoqi’

Name: ‘$’

Name: “$”

两者打印的值不一样,一个打印的就是符号,应该打印的就是值

小结:

Docke-compose单机容器编排

Dockerfile 先配置好文件,然后build,镜像------>容器

Docker-compose 既可以基于Dockerfile,也可以基于镜像,一键式拉起镜像和容器

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

什么时候用到docker:主要用于单节点,本地,一般都是内部访问,无需使用https,docker没有统一对外通过服务的端口和配置

如果要对外以集群和分布式的方式是提供统一的访问的端口,通过k8s+ingress

Docker-compose的常用命令:

Docker-compose的命令必须用于用于dock-compse的yml文件之下

PS:列出由docker-compose编排出来的容器

Build:构建服务

UP:创建和启动容器

Top:显示容器进程

Logs:查看容器的日志

Down:删除容器,网络,数据卷

Exec:在容器当中执行命令

Stop/start/retart:停止,启动,重启容器

Scale:指定启动容器的数量(副本)

如何编排yml文件:

以编译安装nginx为例

按照下列格式创建目录,分别创建docker-compose.yml  nginx  www目录,目录格式注意

dcokercompose_第4张图片

yum -y install tree安装树结构

dcokercompose_第5张图片

在www目录内编辑内容,方便展示,nginx的目录用Dockerfile的形式,创建,前一篇博客有讲明

dcokercompose_第6张图片

编辑docker-compose.yml

dcokercompose_第7张图片

version: '3'

services:

  nginx:

    container_name: web1

    hostname: nginx

    build:

      context: /opt/compose-nginx/nginx

      dockerfile: Dockerfile

    ports:

      - 1213:80

    networks:

      mynet:

        ipv4_address: 172.18.0.10

    volumes:

      - /opt/compose-nginx/www:/usr/local/nginx/html

networks:

  mynet:

    driver: bridge

    ipam:

      config:

        - subnet: 172.18.0.0/16

        

在compose-nginx目录下启动

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

Docker-compose:命令的开头,使用docker-compose进行容器编排

-f:使用特定的compose的模版文件,一般都用docker-compose.yml

-p:project-name:指定项目名称,如果不加,会使用目录名称

-d:后台运行

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

dcokercompose_第8张图片

创建完成

dcokercompose_第9张图片

Dockercompose常用命令查看

docker compose ps

dcokercompose_第10张图片

浏览器访问

dcokercompose_第11张图片

基于dockercompose实现lnmp

首先创建lnmp目录

配置nginx

配置MySQL

配置PHP

在主目录,创建dockercompose

dcokercompose_第12张图片

创建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

    container_name: mysql_server

    networks:

      lnmp:

        ipv4_address: 172.111.0.20

    privileged: true

    volumes:

      - "mysql-data:/usr/local/mysql"

  php:

    hostname: php

    build:

      context: /opt/lnmp/php/

      dockerfile: Dockerfile

    ports:

      - 9000:9000

    container_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:

dcokercompose_第13张图片

dcokercompose_第14张图片

启动

docker-compose -f docker-compose.yml

部署完成

dcokercompose_第15张图片

查看检查镜像和运行的容器

dcokercompose_第16张图片

进入数据库赋权

docker exec -it mysql_server bash

mysql -u root -p

create database wordpress;

grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';  

grant all privileges on *.* to 'root'@'%' identified by '123456';  

flush privileges;

dcokercompose_第17张图片

20.0.0.62:1314/wordpress/index

dcokercompose_第18张图片

你可能感兴趣的:(服务器,运维)