容器云部分题目

容器云

在master节点上编写/root/wordpress/docker-compose.yaml文件,具体要求如下:
(1)容器名称:wordpress;镜像:wordpress:latest;端口映射:82:80;
(2)容器名称:mysql;镜像:mysql:5.6;
(3)MySQLroot用户密码:123456;
(4)创建数据库wordpress。
完成后编排部署WordPress。
mkdir wordpress
cd wordpress
vi docker-compose.yaml
version: '3'

services:

  mysql:
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: wordpress

  wordpress:
    depends_on:
      - mysql
    image: wordpress:latest
    ports:
      - 82:80
    links:
      - mysql:mysql
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: wordpress

docker-compose up -d

在master节点上停止并删除上述部署的wordpress容器。
docker-compose ps -a
docker-compose stop
docker-compose ps -a
docker-compose rm -f
docker-compose ps -a
# 总结就是
docker-compose ps -a
docker-compose down
docker-compose ps -a
在master节点上编写/root/owncloud/docker-compose.yaml文件,具体要求如下:
(1)容器名称:owncloud;镜像:owncloud:latest;端口映射:5678:80;
(2)容器名称:mysql;镜像:mysql:5.6;
(3)MySQLroot用户密码:123456;
(4)创建数据库owncloud。
完成后编排部署owncloud。
mkdir owncloud
cd owncloud/
vi docker-compose.yaml
version: '3'

services:
  mysql:
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: ownclouds

  owncloud:
    depends_on:
      - mysql
    image: owncloud:latest
    restart: always
    links:
      - mysql:mysql
    ports:
      - 5678:80
    volumes:
      - /data/db/owncloud:/var/www/html/data

docker-compose up -d

在master节点上编写/root/redis/Dockerfile文件,基于提供的软件包gpmall-single.tar构建chinaskill-redis:v1.1镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)修改配置文件中的bind127.0.0.1为bind0.0.0.0;
(4)设置Redis免密,并关闭保护模式;
(5)开放端口:6379;
(6)设置服务开机自启。
完成后构建镜像。

可能需要解压.gz文件 gzip -d gpmall-single.tar.gz

暂时需要上传centos1804镜像并为其配置yum源

vi ftp.repo

[gpmall]
name=gpmall
baseurl=ftp://192.168.200.110/ChinaskillMall/gpmall-repo
enabled=1
gpgcheck=0
[centos]
name=centos
baseurl=ftp://192.168.200.110/centos
enabled=1
gpgcheck=0
[k8s]
name=k8s
baseurl=ftp://192.168.200.110/kubernetes-repo
enabled=1
gpgcheck=0
mkdir redis
cp ftp.repo redis/
cd redis/
vi Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -f /etc/yum.repos.d/*
ADD ftp.repo /etc/yum.repos.d/
RUN yum -y install redis
RUN sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf
RUN sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server", "/etc/redis.conf"]

docker build -t chinaskill-redis:v1.1 .

在master节点上编写/root/mariadb/Dockerfile文件,基于提供的软件包gpmall-single.tar构建chinaskill-mariadb:v1.1镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)设置数据库密码:123456;
(4)创建数据库gpmall并导入数据库文件gpmall.sql;
(5)设置字符编码:UTF-8;
(6)开放端口:3306;
(7)设置服务开机自启。
完成后构建镜像。
mkdir mariadb
cp ftp.repo /opt/ChinaskillMall/gpmall.sql mariadb/
cd mariadb/
vi Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -f /etc/yum.repos.d/*
ADD ftp.repo /etc/yum.repos.d/
ADD gpmall.sql /opt
ENV LC_ALL en_US.UTF-8
RUN yum -y install mariadb mariadb-server
RUN echo -e "[mysqld]\nport = 8066" >> /etc/my.cnf
RUN mysql_install_db --user=mysql && sleep 3 && (mysqld_safe &) && sleep 3 && mysqladmin -uroot password 123456 && mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;create database gpmall;use gpmall;source /opt/gpmall.sql;flush privileges;"
EXPOSE 3306 8066
ENTRYPOINT ["mysqld_safe"]

docker build -t chinaskill-mariadb:v1.1 .

在master节点上编写/root/zookeeper/Dockerfile文件,基于提供的软件包gpmall-single.tar构建chinaskill-zookeeper:v1.1镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)开放端口:2181;
(4)设置服务开机自启。
完成后构建镜像,使用构建的镜像运行容器myzookeeper。
mkdir zookeeper
cp ftp.repo /opt/ChinaskillMall/zookeeper-3.4.14.tar.gz zookeeper/
cd zookeeper/
vi Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -f /etc/yum.repos.d/*
ADD ftp.repo /etc/yum.repos.d/
ADD zookeeper-3.4.14.tar.gz /opt
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
RUN mv /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg
EXPOSE 2181
ENTRYPOINT ["/opt/zookeeper-3.4.14/bin/zkServer.sh", "start-foreground"]

docker build -t chinaskill-zookeeper:v1.1 .

在master节点上编写/root/kafka/Dockerfile文件,基于提供的软件包gpmall-single.tar构建chinaskill-kafka:v1.1镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)开放端口:9092;
(4)设置服务开机自启。
完成后构建镜像。
mkdir kafka
cp ftp.repo /opt/ChinaskillMall/kafka_2.11-1.1.1.tgz kafka/
cd kafka/
vi Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -f /etc/yum.repos.d/*
ADD ftp.repo /etc/yum.repos.d/
ADD kafka_2.11-1.1.1.tgz /opt/kafka
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
RUN sed -i 's/num.partitions.*$/num.partitions=3/g;s/zookeeper.connect=.*$/zookeeper.connect=zookeeper:2181/g' /opt/kafka/kafka_2.11-1.1.1/config/server.properties
EXPOSE 9092
ENTRYPOINT ["sh", "/opt/kafka/kafka_2.11-1.1.1/bin/kafka-server-start.sh config/server.properties"]

docker build -t chinaskill-kafka:v1.1 .

在master节点上编写/root/nginx/Dockerfile文件,基于提供的软件包gpmall-single.tar构建chinaskill-nginx:v1.1镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)编写/etc/nginx/conf.d/default.conf文件,配置反向代理,将80端口请求转发到8081、8082和8083;
(4)将dist.tar解压并复制到/usr/share/nginx/html/目录下;
(5)开放端口:80、443、8081、8082、8083;
(6)设置服务开机自启。
mkdir nginx
cp ftp.repo dist.tar /opt/ChinaskillMall/*.jar nginx/
cd nginx/
cp /etc/nginx/conf.d/default.conf . 
vi Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -f /etc/yum.repos.d/*
RUN rm -rf /etc/nginx/conf.d/default.conf /usr/share/nginx/html/*
ADD run.sh /root/
ADD ftp.repo /etc/yum.repos.d/
ADD dist.tar /usr/share/nginx/html/
ADD default.conf /etc/nginx/conf.d/default.conf
COPY *.jar /root/
RUN chmod 775 /root/run.sh /usr/share/nginx/html/*
RUN yum -y install nginx java-1.8.0-openjdk java-1.8.0-openjdk-devel
EXPOSE 80 443 8081 8082 8083
ENTRYPOINT ["nginx", "-g", "daemon off;"]

vi run.sh

#!/bin/bash
nohup java -jar shopping-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar user-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar gpmall-shopping-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar gpmall-user-0.0.1-SNAPSHOT.jar &
sleep 5

vi default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /shopping {
            proxy_pass http://127.0.0.1:8081;
        }

    location /user {
            proxy_pass http://127.0.0.1:8082;
        }

    location /cashier {
            proxy_pass http://127.0.0.1:8083;
        }
    #error_page  404              /404.html;
}

docker build -t chinaskill-nginx:v1.1 .

在master节点上编写/root/chinaskillmall/docker-compose.yaml文件,具体要求如下:
(1)容器1名称:mysql;镜像:chinaskill-mariadb:v1.1;端口映射:3306:3306;
(2)容器2名称:redis;镜像:chinaskill-redis:v1.1;端口映射:6379:6379;
(3)容器3名称:kafka;镜像:chinaskill-kafka:v1.1;端口映射:9092:9092;
(4)容器4名称:zookeeper;镜像:chinaskill-zookeeper:v1.1;端口映射:2181:2181;
(5)容器5名称:nginx;镜像:chinaskill-nginx:v1.1;端口映射:80:80,443:443。
mkdir chinaskillmall
cd chinaskillmall/
vi docker-compose.yaml
version: "3"

services:
  mysql.mall:
    container_name: mysql
    image: chinaskill-mariadb:v1.1
    ports:
      - "3306:3306"
    restart: always

  redis.mall:
    depends_on:
      - mysql.mall
    container_name: redis1
    image: chinaskill-redis:v1.1
    ports:
      - "6379:6379"
    restart: always

  zookeeper.mall:
    depends_on:
      - mysql.mall
      - redis.mall
    container_name: zookeeper
    image: chinaskill-zookeeper:v1.1
    ports:
      - "2181:2181"
    restart: always

  kafka.mall:
    links:
      - zookeeper.mall
    depends_on:
      - mysql.mall
      - redis.mall
      - zookeeper.mall
    container_name: kafka
    image: chinaskill-kafka:v1.1
    ports:
      - "9092:9092"
    restart: always

  mall:
    container_name: nginx1
    image: chinaskill-nginx:v1.1
    links:
      - mysql.mall
      - redis.mall
      - zookeeper.mall
      - kafka.mall
    depends_on:
      - mysql.mall
      - redis.mall
      - zookeeper.mall
      - kafka.mall
    ports:
      - "88:80"
      - "443:443"
    privileged: true
    command: /root/run.sh
在master节点上使用镜像jenkins/jenkins:2.262-centos部署Jenkins服务,具体要求如下:
(1)容器名称:jenkins;
(2)端口映射:8080:80;
(3)使用root身份生成容器;
(4)离线安装Jenkins插件;
(5)设置Jenkins用户:chinaskill;密码:000000;
(6)配置权限“任何用户可以做任何事(没有任何限制)”。
使用chinaskill用户登录Jenkins。

在master节点上使用镜像gitlab/gitlab-ce:12.9.2-ce.0部署Gitlab服务,具体要求如下:
(1)容器名称:mygitlab;
(2)端口映射:1022:22、81:80、443:443;
(3)重启策略:always;
(4)设置Gitlab用户:root;密码:00000000;
(5)新建项目:ChinaskillProject;
(6)将/opt/ChinaskillProject中的代码上传到ChinaskillProject项目中。

配置Jenkins连接Gitlab,具体要求如下:
(1)设置Outboundrequests;
(2)生成“AccessTokens”;
(3)设置Jenkins取消对'/project'end-point进行身份验证;
(4)测试Jenkins与Gitlab的连通性。

配置Jenkins连接maven,具体要求如下:
(1)采用dockerindocker的方式在Jenkins内安装maven;
(2)在Jenkins中配置maven信息。

配置CI/CD,具体要求如下:
(1)新建一个流水线任务ChinaskillProject;
(2)编写流水线脚本;
(3)配置Webhook;
(4)在Harbor中新建公开项目chinaskillproject。

将ChinaskillProject项目中的代码上传到Gitlab中触发构建。
  • 18
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 91
    评论
### 回答1: Docker容器是一种轻量级、可移植的虚拟化技术。它能够将应用程序及其所有依赖打包成一个独立的、可随时部署的单元,称为容器。与传统的虚拟化技术相比,Docker容器更加灵活、高效,能够快速部署和扩展应用。 容器(Container Cloud)是建立在计算基础上的一种基于容器技术的平台。它能够自动化管理和部署大规模的容器集群,提供资源调度、服务发现、监控等功能,使得应用的开发、测试和部署过程更加简便和高效。 Docker容器容器之间存在密切的联系和相互依赖。首先,Docker容器作为一种轻量级的容器技术,是容器平台的基础。容器平台可以利用Docker容器来实现应用程序的隔离和资源管理,提供统一的管理接口和调度策略。 其次,容器平台能够进一步增强Docker容器的功能和性能。通过容器平台,可以实现容器集群的扩容和负载均衡,并提供高可用性和故障恢复的能力。容器平台还可以提供统一的日志和监控平台,方便运维人员进行容器的管理和故障排查。 最后,Docker容器容器的结合可以提供更加灵活和高效的应用部署和管理方式。通过Docker容器的打包和发布,可以实现应用在开发、测试和生产环境的无缝迁移,减少了运维的工作量和成本。而容器平台的自动化管理和扩展能力,则使得应用的部署和升级更加便捷和快速。 综上所述,Docker容器容器是相辅相成的关系。Docker容器作为一种虚拟化技术,为容器平台提供了基础;而容器平台则进一步增强了Docker容器的功能和性能,实现了高效的应用部署和管理。这种结合为企业提供了更加灵活、高效的计算解决方案。 ### 回答2: Docker容器是一种轻量级的虚拟化技术,可以将应用程序及其依赖项打包在一个可移植的容器中,使其可以在任何环境中运行。容器是基于计算的平台,用于管理和部署多个Docker容器。 Docker容器的特点是轻便、快速、可移植和可靠。它们将应用程序打包成一个独立的单元,可以在不同的计算机和操作系统上运行,而不需要额外的配置和设置。容器不会与系统环境发生冲突,因此可以快速启动和停止,以及实现高效的资源利用。 而容器是一种更高级的容器管理和部署平台。它可以自动化地管理大量的Docker容器,并提供了更多的功能和服务。容器可以根据应用程序的需求自动扩展容器的数量,确保应用程序始终具有足够的资源来运行。它还可以提供负载均衡、容器间通信和服务发现等功能,简化了应用程序的开发和部署过程。 容器还可以提供监控、日志记录和故障恢复等功能,帮助开发人员更好地管理和维护应用程序。它还支持多租户和权限管理,确保不同用户之间的容器隔离和安全性。 总而言之,Docker容器容器是一对密切相关的概念。Docker容器为应用程序提供了轻量级的虚拟化环境,而容器则在此基础上提供了更高级的管理和部署功能。它们的结合可以极大地简化应用程序的开发和部署过程,并提高应用程序的可靠性和可扩展性。 ### 回答3: Docker容器是一个轻量级、可移植和可扩展的容器化技术。它允许开发人员将应用程序及其依赖项打包为一个标准化的容器,然后可以在任何支持Docker的环境中运行。 Docker容器的主要优点包括: 1. 灵活性:Docker容器提供了一个独立的运行环境,可以将应用程序及其依赖项打包在一起。这使得应用程序的部署和迁移变得简单和可预测。 2. 资源隔离:每个Docker容器都有自己的文件系统、进程空间和网络接口,这意味着容器之间的应用程序资源相互隔离,可以避免相互干扰。 3. 可拓展性:Docker容器可以快速创建和销毁,并可以自动进行扩展和缩减,以适应更改的负载需求。 容器是建立在Docker容器技术之上的计算平台。它可以用来管理和编排大规模的容器集群,并提供一套高级特性,使得容器的部署、监控和扩展变得更加便捷。 容器的主要功能包括: 1. 集中管理:容器提供了一个集中化的管理平台,可以轻松地管理和监控大规模容器集群中的所有容器实例。 2. 自动化部署:容器可以根据用户定义的规则和策略,自动部署和扩展容器实例,以适应不同的负载需求。 3. 服务发现和负载均衡:容器可以自动发现和管理容器集群中的服务,并提供负载均衡功能,以确保每个容器实例都能够平衡地处理请求。 4. 安全和可靠性:容器提供了一系列安全措施,如访问控制、容器隔离和自动恢复,以确保容器应用程序的安全和可靠性。 总之,Docker容器容器是一对密切相关的概念。Docker容器提供了一种轻量级和标准化的打包和部署方式,而容器则提供了一个管理和编排大规模容器集群的平台,以简化容器的运维工作。通过结合使用这两种技术,开发人员和运维团队可以更高效地部署和管理容器化的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 91
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值