docker-compose容器编排(单机一键拉起所有容器)

发布时间:2023年12月17日

1、安装docker-compose实验

安装完成

2、yaml文件

(1)定义

一种直观的、以竖列形式展示序列化数据格式的标记语言,可读性高。类似于json格式,但语法简单

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

(2)使用注意事项

①大小写敏感

②通过缩进表示层级关系

③只能用空格缩进,不能用tab键

④使用#注释

⑤符号字符后面均有一个空格

举例:test: 2(2前面有一个空格)

⑥单引号引起来的字符会被当作普通字符串处理,双引号里面是特殊字符表示本意

举例:“#”表示#本身这个符号

(3)yaml格式

①声明标量(不能用tab键表示空格)

特点:单个的、不可再分的值

类型:字符串、整数、布尔类型

name: guoqi(中间有空格)

age: 20

tall: yes

handson: yes

wan: no

②list列表:表示有序的元素集合(不能用tab键表示空格)

class:

??- guoqi

??- zirui

??- defu

③键值对映射(不能用tab键表示空格)

Student:

??Name: guoqi

??Age: 20

Student1:

??Name: zirui

??Age: 18

④注释

#test

⑤引用:用&定义锚点,用*引用(不能用tab键表示空格)

Student: &id1

??Name: guoqi

??Age: 20

student1: *id1 ???#调用Student里的name和age

(4)字符串引号

Name: ‘guoqi’????

Name: “guoqi”

Name: ‘$’???#表示$字符串

Name: “$”??#表示$含义

3作用

单机容器编排(不能跨网段、不能跨主机)

既可以基于dockerfile,也可以基于镜像,一键式拉取镜像和容器

4docker适用场景

适用于单节点本地访问,docker没有统一的对外提供服务的端口和配置,一般是内部访问,无需使用https,若要以集群和分布式的方式提供统一访问的端口,可以使用K8s+ingress

5docker-compose的常用命令

只能在有docker-compose的目录下运行docker-compose命令

build

构建服务

ps

列出由docker-compose编排出来的容器(常用)

up

创建和启动容器(常用)

top

显示容器的进程

logs

查看容器的输出日志

down

删除容器、网络、数据卷

exec

在容器中执行命令(一般不用)

stop/start/restart

停止/启动/重启

scale

指定启动的容器数量(副本)(在k8s中常用)

6、编排yml文件

docker-compose搭建nginx容器实验

1、安装docker-compose

2、安装tree

3、创建nginx的Dockerfile文件

5、创建docker-compose的yml文件(必须和nginx和www平级创建yml文件)

5、构建容器

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

docker-compose

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

-f

使用特定的compose的模板文件,一般不重命名,都用docker-compose.yml

-p

project-name,指定项目名称,若不加,会使用目录名称

-d

后台运行

6、访问测试

7、测试docker-compose的命令(一定要在docker.compose.yml的目录下使用)

docker-compose搭建nmp容器+wordpress实验

1、安装docker-compose

2、配置nginx、mysql、php的配置文件和Dockerfile文件

(1)nginx

cd /opt/lnmp/nginx

vim Dockerfile

vim nginx.conf

(2)mysql

cd mysql/

vim Dockerfile

vim my.cnf

(3)php

cd php/

vim Dockerfile

3、创建docker-compose.yml文件(必须和要创建的容器目录平级)

yum -y install tree

4、构建容器

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

5、查看容器是否构建成功

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;

6、浏览器访问http://20.0.0.16/wordpress/index.jsp

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