欢迎交流+q1989046639
1.1实战案例——容器化部署mall-swarm商城
1.1.1 案例目标
(1)了解Mariadb服务的容器化部署。
(1)了解Redis服务的容器化部署。
(2)了解RabbitMQ服务的容器化部署。
(3)了解Nacos服务的容器化部署。
1.1.2 案例分析
1.规划节点

节点规划,见表1-1-1。
表1-1-1节点规划
IP |
主机名 |
节点 |
10.24.2.156 |
master |
docker-compose节点 |
2.基础准备
Docker和Docker Compose已安装完成,将提供的软件包mall-swarm.tar.gz上传至master节点/root目录下并解压。
1.1.3 案例实施
1.Mariadb容器化部署
(1)编写Dockerfile
编写yum文件
[root@master ~]# cd mall-swarm
[root@master mall-swarm]# cat local.repo
[mall]
name=mall
baseurl=file:///opt/mall-repo
gpgcheck=0
enabled=1
编写初始化脚本init.sh:
[root@master mall-swarm]# cat init.sh
#!/bin/bash
mysql_install_db --user=root
mysqld_safe --user=root &
sleep 3
mysqladmin -u root password 'root'
mysql -uroot -proot -e "grant all on *.* to 'reader'@'%' identified by '123456'; flush privileges;"
mysql -uroot -proot -e "create database mall; use mall; source /opt/mall.sql;"
编写Dockerfile文件:
[root@master mall-swarm]# cat Dockerfile-mariadb
FROM centos:centos7.5.1804
MAINTAINER Guo
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY mall-repo /opt/mall-repo
COPY mall.sql /opt/
COPY init.sh /opt/
ENV LC_ALL en_US.UTF-8
RUN yum -y install mariadb-server && bash /opt/init.sh
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
(2)构建镜像
构建镜像:
[root@master mall-swarm]# docker build -t mall-mysql:v1.0 -f Dockerfile-mariadb .
Sending build context to Docker daemon 410.3MB
Step 1/11 : FROM centos:centos7.5.1804
---> cf49811e3cdb
Step 2/11 : MAINTAINER Guo
---> Using cache
---> 612224da592d
Step 3/11 : RUN rm -rf /etc/yum.repos.d/*
---> Using cache
---> d88b0763dfe4
Step 4/11 : COPY local.repo /etc/yum.repos.d/
---> Using cache
---> 60047baa075d
Step 5/11 : COPY mall-repo /opt/mall-repo
---> Using cache
---> ae7f67e9bf08
Step 6/11 : COPY mall.sql /opt/
---> Using cache
---> c387a39ef1aa
Step 7/11 : COPY init.sh /opt/
---> Using cache
---> a29b78a53fea
Step 8/11 : ENV LC_ALL en_US.UTF-8
---> Using cache
---> 19cf25317911
Step 9/11 : RUN yum -y install mariadb-server && bash /opt/init.sh
---> Using cache
---> 1e8fbec2cc00
Step 10/11 : EXPOSE 3306
---> Using cache
---> 9c4a6fb7bd6b
Step 11/11 : CMD ["mysqld_safe","--user=root"]
---> Using cache
---> c689d4e7ea97
Successfully built c689d4e7ea97
Successfully tagged mall-mysql:v1.0
查看镜像列表:
[root@master mall-swarm]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mall-mysql v1.0 c689d4e7ea97 58 seconds ago 522MB
2.Redis容器化部署
(1)编写Dockerfile
编写Dockerfile文件:
[root@master mall-swarm]# cat Dockerfile-redis
FROM centos:centos7.5.1804
MAINTAINER Cuo
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY mall-repo /opt/mall-repo
RUN yum -y install redis
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && \
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["/usr/bin/redis-server","/etc/redis.conf"]
(2)构建镜像
构建镜像:
[root@master mall-swarm]# docker build -t mall-redis:v1.0 -f Dockerfile-redis .
Sending build context to Docker daemon 410.3MB
Step 1/9 : FROM centos:centos7.5.1804
---> cf49811e3cdb
Step 2/9 : MAINTAINER Cuo
---> Using cache
---> dfdbec4d294b
Step 3/9 : RUN rm -rf /etc/yum.repos.d/*
---> Using cache
---> cade39fa5cbd
Step 4/9 : COPY local.repo /etc/yum.repos.d/
---> Using cache
---> 83d77407ada3
Step 5/9 : COPY mall-repo /opt/mall-repo
---> Using cache
---> fa10113c62ac
Step 6/9 : RUN yum -y install redis
---> Using cache
---> 1b70d0d9faf5
Step 7/9 : RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
---> Using cache
---> f9e69a29089d
Step 8/9 : EXPOSE 6379
---> Using cache
---> b45b59562c57
Step 9/9 : CMD ["/usr/bin/redis-server","/etc/redis.conf"]
---> Using cache
---> 44b9fefbf4e2
Successfully built 44b9fefbf4e2
Successfully tagged mall-redis:v1.0
查看镜像列表:
[root@master mall-swarm]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mall-redis v1.0 95746fc7acc8 54 seconds ago 338MB
3.RabbitMQ容器化部署
(1)编写Dockerfile
创建RabbitMQ用户脚本
[root@master mall-swarm]# cat rabbitmq-user.sh
#!/bin/bash
## 创建RabbitMQ用户
/usr/lib/rabbitmq/bin/rabbitmq-server -detached
sleep 3
/usr/lib/rabbitmq/bin/rabbitmqctl add_vhost mall
/usr/lib/rabbitmq/bin/rabbitmqctl add_user mall mall
/usr/lib/rabbitmq/bin/rabbitmqctl set_user_tags mall administrator
/usr/lib/rabbitmq/bin/rabbitmqctl set_permissions -p mall mall '.*' '.*' '.*'
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
编写Dockerfile文件:
[root@master mall-swarm]# cat Dockerfile-rabbitmq
FROM centos:centos7.5.1804
MAINTAINER Guo
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY rabbitmq-user.sh /opt/rabbitmq-user.sh
COPY mall-repo /opt/mall-repo
RUN yum -y install rabbitmq-server
EXPOSE 5672 15672
CMD ["/bin/bash","/opt/rabbitmq-user.sh"]
(2)构建镜像
构建镜像:
[root@master mall-swarm]# docker build -t mall-rabbit:v1.0 -f Dockerfile-rabbitmq .
Sending build context to Docker daemon 410.3MB
Step 1/9 : FROM centos:centos7.5.1804
---> cf49811e3cdb
Step 2/9 : MAINTAINER Guo
---> Using cache
---> 02855371e6e9
Step 3/9 : RUN rm -rf /etc/yum.repos.d/*
---> Using cache
---> 5f56a1e30007
Step 4/9 : COPY local.repo /etc/yum.repos.d/
---> Using cache
---> ff9431065417
Step 5/9 : COPY rabbitmq-user.sh /opt/rabbitmq-user.sh
---> Using cache
---> d3d36333b8df
Step 6/9 : COPY mall-repo /opt/mall-repo
---> Using cache
---> 0efec0dea187
Step 7/9 : RUN yum -y install rabbitmq-server
---> Using cache
---> 918e0aea03a2
Step 8/9 : EXPOSE 5672 15672
---> Using cache
---> b796230efa8d
Step 9/9 : CMD ["/bin/bash","/opt/rabbitmq-user.sh"]
---> Using cache
---> 67d8b40d90ad
Successfully built 67d8b40d90ad
Successfully tagged mall-rabbit:v1.0
查看镜像列表:
[root@master mall-swarm]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mall-rabbit v1.0 67d8b40d90ad 3 minutes ago 374MB