docker-compose

2023-12-17 05:45:30

docker-compose?

docker-compose安装:

yaml文件:是一种标记语言,以竖列的形式展示序列化的数据格式,可读性高,类似于json格式,语法简单

YAML通过缩进来表示数据结构,连续的项目用-减号来表示

yaml文件使用的注意事项:

1、大小写敏感

2、通过缩进表示层级关系

3、只能用空格缩进,不能用tab缩进

4、可以使用#注释

5、符号字符后面都有一个空格

6、单引号引起来的字符,会被当作普通字符串处理,“#&*”双引号里面是特殊字符,就是符号本来的意思

YAML文件的基本数据结构:

声明变量(标量,单个的,不可再分的值 字符串,整数,布尔类型):

name:guoqi

age:20

tall:yes

handsan:yes

wan:true

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

class:

??- guoqi

??- zirui

??- defu

键值对映射(千万不要用tab)

student:

??Name:guoqi

??Age:20

Student1:

??Name:zirui

??Age:18

注释:

# test

引用:

Student:&id1

??Name:guoqi

??Age:20

Student1:*id1

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

字符串引号:

Name: guoqi

Name: guoqi

Name: $

Name: $

docker-compose:单机容器编排

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

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

docker-compose核心就是yml文件,可以定义容器的一切,通过yml

配置,直接运行容器

docker:主要服务于单节点,docker没有统一对外提供服务的端口和配置。docker一般都是内部访问,无需使用https

如果要对外以集群和分布式的方式提供统一访问的端口,,只能使用k8s+ingress

docker-compose的常用命令(需要在docker-compose.yml的文件或者目录下才能使用):

build:构建服务

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

up:创建和启动容器

top:显示容器的进程

logs:查看容器的输出日志

down:删除容器,网络,以及数据卷

exec:在容器中执行命令

stop/start/restart:停止,启动,重启容器

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

docker-compose安装搭建nginx实验:

把docker-compose软件包拉到opt目录下

yum -y install tree

把nginx软件包拖进来

写个Dockerfile的配置文件

version: 3

#指定docker-compose的文件版本

services:

#定义需要运行的服务

??nginx:

container_name:web1

#指定创建容器的名字

hostname:nginx

#指定容器的主机名

build:

#指定构建nginx容器的上下文以及dockerfile

??????context: /opt/compose-nginx/nginx

#指定dockerfile的位置,如果用镜像,就换成image:

??????dockerfile: Dockerfile

ports:

#直接指定宿主机和容器的端口映射关系

??- 1213:80

networks:

#声明给容器指定的ip地址

??????mynet:

version ‘3’

#指定docker-compose的文件版本

service:

#定义需要运行的服务

??nginx:

????container_name:web1

#指定创建容器的名字

????hostname:nginx

#指定容器的主机名

????build:

#指定构建nginx容器的上下文以及dockerfile

??????context: /opt/compose-nginx/nginx

#指定dockerfile的位置,如果用镜像,就换成image:

??????dockerfile: Dockerfile

????ports:

#直接指定宿主机和容器的端口映射关系

??????- 1213:80

????networks:

#声明给容器指定的ip地址

??????mynet:

#自定义网络

????????ipv4_address: 172.18.0.10

????volumes:

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

networks:

#创建自定义网桥接口配置

??mynet:

????driver: bridge

#声明网段的类型

????ipam:

#IP地址的管理和配置(声明网段)

??????config:

#子网配置,指定IP地址的范围:

????????- subnet: 172.18.0.0/16

切换到opt目录下

进入到文件里开始构建

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

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

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

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

-d:后台运行

docker pull centos:7

如果yum安装报错 ,就重启docker

可以查看一下镜像

再查看一下容器

查看网络

上浏览器查看一下

lnmp安装:

创建目录lnmp

cd /opt

mkdir lnmp

以上内容可以看昨天的实验

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

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

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

进入容器的数据库进行赋权:

如果进入浏览器忘记密码,那就删库重新创(就是databases)

docker-compose:单机容器编排工具,可以实现一键式的拉取镜像和创建容器

yml文件的格式:

version: 3

解析代码的版本,声明解释器

services:

#声明服务,可以有多个services

networks:

#写在服务配置,赋予容器ip地址

写在顶格,就是大的模块,创建网段

volumes:

nginx-data:/usr/local/nginx/

volumes:

??nginx-data:

??mysql-data:

文章来源:https://blog.csdn.net/wyh20030130/article/details/135021914
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。