ls it going on----------docker的编排工具compose初体验

实验

容器的编排compose能同时制作多个dockerfile 并且让他们运行起来
主要是验证yaml文件的初体验

在这里插入图片描述

compose实验

实验环境:

docker ps -a  ##清空
docker images  ##清空
iptables -F  ##清空防火墙策略
setenforce 0  ##关闭核心防护
#安装docker
vim docker.sh
#!/bin/bash
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl start docker.service
systemctl enable docker.service
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7lkjwk2y.mirror.aliyuncs.com"]
}
EOF
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
systemctl restart network
systemctl reload network
systemctl restart docker

一、将所需要的软件docker-compose放在/root目录下

chmod +x docker-compose  ##给软件一个执行的权限
mv docker-compose /usr/local/bin ##为了便于系统识别
mkdir compose_nginx  ##创建一个单独的镜像目录便于管理
cd compose_nginx
mkdir nginx   ##在创建一个nginx镜像专属的目录
cd nginx

二、将nginx需要的包传到nginx目录 然后在写制作镜像为文件和启动脚本

[root@localhost nginx]# vim Dockerfile 
FROM centos:7
MAINTAINER this is nginx image <lai>
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.15.9.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.15.9
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

[root@localhost nginx]# vim run.sh 
#!/bin/bash
/usr/local/nginx/sbin/nginx

[root@localhost nginx]# ls
Dockerfile  nginx-1.15.9.tar.gz  run.sh

三、设置yml的配置

[root@localhost nginx]# cd ..
[root@localhost compose_nginx]# vim docker-compose.yml 
version: '3'  ##我们用的版本信息是3,符号用单引号
services:   ##服务:你提供的服务也可以是多个
  nginx:   ##第一个服务nginx
    hostname: nginx  ##你的主机名称
    build:   ##构建
     context: ./nginx  ##你的镜像内容存放位置为
     dockerfile: Dockerfile ##读取你的制作镜像为文件
    ports:   ##构建端口映射
     - 1216:80  ##内端口为1216映射到80端口
     - 1217:443  ##在建一个https的端口映射
    networks:  ##网络
     - abc   ##这个网络名称可以自定义
    volumes:  ##写一个数据卷
     - ./wwwroot:/usr/local/nginx/html
 ##把当前目录中的wwwroot挂载到站点(目录容器的)相当设备wwwroot挂载到容器中的/usr/local/nginx/html下面
##networks:   ##声明你的网络信息
##  abc:

##查看一下需要的文件全部全
[root@localhost compose_nginx]# ls
docker-compose.yml  nginx

##执行制作镜像的过程
docker-compose -f docker-compose.yml up -d
##制作好后会出现
Successfully built 50bee1ad2f57
Successfully tagged compose_nginx_nginx:latest
docker images       ##查看会出现两个镜像一个容器
REPOSITORY            TAG                 IMAGE ID            CREATED              SIZE
compose_nginx_nginx   latest              50bee1ad2f57        About a minute ago   481MB
centos                7                   7e6257c9f8d8        3 months ago         203MB

[root@localhost compose_nginx]# ls ##这时会多出来一个目录
docker-compose.yml  nginx  wwwroot
##可以在文件中写一文件然后可以直接去网页上看到有内容并且进入容器后也能看到相关内容
cd wwwroot/
[root@localhost wwwroot]# vim index.html   若没有填加内容去网页看会出现403
<h1>this is test web</h>

#去网页看看
20.0.0.9:1217

##然后去你的容器中也能看到相关的信息
docker exec -it 1e7312eb8b3e /bin/bash
cd /usr/local/nginx/html
[root@nginx html]# cat index.html   ##会有刚才你写的内容
<h1>this is test web</h>

四、查看是否分网段了

这时候还可以看到一个功能就是IP地址
yum -y install net-tools  ##使ifconfig能用
ifconfig       ##能发现有两个IP地址
[root@nginx nginx-1.15.9]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.2  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:02  txqueuelen 0  (Ethernet)
        RX packets 137  bytes 322788 (315.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 118  bytes 7580 (7.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4  bytes 304 (304.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 304 (304.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  


exit   ##当你退回到宿主机的时候也能看到容器内的IP地址
[root@localhost ~]# ifconfig
br-05554d6dbab8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255
        inet6 fe80::42:f5ff:fe94:bccc  prefixlen 64  scopeid 0x20<link>
        ether 02:42:f5:94:bc:cc  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:e3ff:fe6c:959e  prefixlen 64  scopeid 0x20<link>
        ether 02:42:e3:6c:95:9e  txqueuelen 0  (Ethernet)
        RX packets 64977  bytes 3274765 (3.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 83512  bytes 632057677 (602.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0                      

##这是因为在里面中从新划分了一个网络空间。相当于有了一个子网段,也就是相当于而成交换机划分了vlan就是命名空间 其实它的全网段是172.0.0.0其中也能划分其他的网段比如172.17.0.1以及172.18.0.1等 通过这个可以实现容器之间的隔离,保证容器的安全性

关键段

version: ‘3’  ##我们用的版本信息是3,符号用单引号
services:   ##服务:你提供的服务也可以是多个
  nginx:   ##第一个服务nginx
    hostname: nginx  ##你的主机名称
    build:   ##构建
     context: ./nginx  ##你的镜像内容存放位置为
     dockerfile: Dockerfile ##读取你的制作镜像为文件
    ports:   ##构建端口映射
     - 1216:80  ##内端口为1216映射到80端口
     - 1217:443  ##在建一个https的端口映射
    networks:  ##网络
     - abc   ##这个网络名称可以自定义
    volumes:  ##写一个数据卷
     - ./wwwroot:/usr/local/nginx/html
 ##把当前目录中的wwwroot挂载到站点(目录容器的)相当设备wwwroot挂载到容器中的/usr/local/nginx/html下面
##networks:   ##声明你的网络信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值