一、背景
公司要求某个软件需要容器化,因为单独部署浪费资源。
二、选择
部署:docker
管理:docker-compose
监控:初步使用shell监控
存储:Bind mount
Volume:docker管理
Bind mount:自行管理、比较适用于此业务场景
网络:macvlan
docker默认网络-bridge: 端口不能相同、容器可以访问外部、外部不能通过容器ip直接访问
macvlan网络: 配置简单、网络效率高、(需要做iplink)
Flannle:需要部署etcd数据库(成本高、网络效率高)
netmaster:需要部署etcd数据库(成本高、网络效率高)
三、制作镜像
Dockerfile
FROM registry-vpc.cn-beijing.cr.aliyuncs.com/base/centos:7.7 ADD centhos-os-7.7.repo /etc/yum.repos.d/ ADD netmaster.conf /etc/rsyslog.d/ RUN mv /etc/yum.repos.d/CentOS-* /tmp/ && yum clean all && yum makecache &&yum install netmaster -y RUN yum install net-tools git rsyslog -y && chmod 755 /usr/local/netmaster/bin/*
docker build -t -registry-vpc.cn-beijing.cr.aliyuncs.com/apps/netmaster:20221203 .
四、创建mavclan和其他配置
docker network create -d macvlan -o parent=eth0 \ --subnet 10.110.120.0/24 \ --gateway 10.110.120.254 \ --ip-range 10.110.120.128/27 \ docker-net
拉取镜像
安装和启动docker
五、创建iplink
ip link add docker-net link bond0 type macvlan mode bridge
ip addr add 10.110.120.129/32 dev docker-net
ip link set docker-net up
ip route add 10.110.120.128/27 dev docker-net
[root@ops-netmaster-120-11 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
11009fe58467 bridge bridge local
83e1f291519b host host local
6fa8b719cfe4 none null local
84ee49eb0f49 vlan239 macvlan local
六、创建容器
docker命令创建
docker run -it --network docker-net --ip 10.110.120.132 --restart=always --privileged=true --name dev_app2_10-110-120-132_netmaster -v /data/netmaster/dev_app2_10-110-120-132_netmaster/:/data/netmaster/netmaster_9999/ -v /data/netmaster/dev_app2_10-110-120-132_netmaster/etc/:/var/contiv/config/ registry-vpc.cn-beijing.cr.aliyuncs.com/apps/netmaster:20221203 /usr/sbin/init
docker-compose创建
[root@ops-netmaster-120-11 bin]# cat ../etc/docker-compose.yml
version: '3'
services:
app1_10-110-120-130_netmaster_9999:
image: registry-vpc.cn-beijing.cr.aliyuncs.com/apps/netmaster:20221203
container_name: app1_10-110-120-130_netmaster_9999
restart: always
privileged: true
volumes:
- /data/netmaster/app1_10-110-120-130_netmaster_9999/:/data/netmaster/netmaster_9999/
- /data/netmaster/app1_10-110-120-130_netmaster_9999/var/contiv/config/:/var/contiv/config/
networks:
docker-net:
ipv4_address: 10.110.120.130
command: /usr/sbin/initnetworks:
docker-net:
external: true
有问题请加博主微信进行沟通!
全部评论