• docker 部署应用


    Docker 部署应用

    所需环境

      Linux系统:centos7 (推荐7.4)

      Docker环境:V1.13.1

      镜像:应用镜像包

    docker部署和基本命令:

      1、 docker环境搭建

        a)        配置代理,可进行在线安装docker (可直接联网则无需配置)

        b)        yum –y install docker 成功安装docker

      2、 docker的基本操作以及命令

        a)        打开/关闭/重启docker服务:sudo service docker start/stop/restart (systemctl start docker    Centos7启动命令)

        b)        查看当前正在运行的容器:docker ps

        c)         查看所有容器的状态(包括已停止的):docker ps –a

        d)        启动/停止某个容器:docker start/stop id/name

        e)        启动一个伪终端以交互的方式进入某个容器(使用exit退出后,容器不会停止运行):docker exec –it id

        f)         查看本地镜像:docker images

        g)        删除某个容器:docker rm id/name

        h)        删除某个镜像:docker rmi id/name

        i)         创建一个容器分配一个伪终端并在后台以交互模式运行:docker run –dit [image id] /bin/bash

        j)         退出容器:exit

    应用部署

      1、 上传开发提供的镜像zip包至宿主机,用unzip命令解压该包,解压后为一个tar包。unzip xxxxxx.zip

      2、 将解压后的tar包载入docker成为一个镜像:docker load –i  /xxx/xxx/xxx.tar (该tar包的绝对路径)

      3、 查看镜像ID并创建容器映射端口:

        a)        查看镜像:docker images

        [root@localhost splus_scripts]# docker images
        REPOSITORY          TAG                     IMAGE ID            CREATED             SIZE
        probe               probe-R2.0.2-20181102   cbf0af6a84e4        2 months ago        2.11 GB
        splus-update        agent                   c5dfd35e14ce        3 months ago        7.49 GB
        [root@localhost splus_scripts]# 

        b)        通过镜像ID创建容器,映射端口,挂载目录:

        [root@localhost]# docker run -dit --name=sp --privileged --device=/dev/mem -v /etc/localtime:/etc/localtime \

        > -p 21:21 \

        > -p 8080:8080 \

        > -p 8443:8443 \

        > -p 2203:22 \

        > [images id] /bin/bash            #无中括号

        例:
        [root@localhost splus_scripts]# docker run -dit --name=sp --privileged -v /etc/localtime:/etc/localtime:ro \
        -p 8080:8080 \
        -p 8443:8443 \
        -p 21:21 \
        -p 514:514 \
        -p 9005:9005 \
        -p 515:515 \
        -p 69:69 \
        -p 3306:3306 \
        c5dfd35e14ce /bin/bash     1531acfdd99cfa7e27d2a390a85e014093fbb6344eb4c07879796ddd22f29a38     [root@localhost splus_scripts]#

        --name=sp               #指定容器名字,后续可以通过名字进行容器管理

        --privileged              #privileged启动的容器,可以看到很多host上的设备,并且可以执行mount

        --device=/dev/mem       #添加主机设备给容器,相当于设备直通

        -v /etc/localtime:/etc/localtime –v licData:licData     #挂载时区和lic文件

        -p                     #将容器的端口映射到主机端口上

        /bin/bash               #载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器就会退出。

      4、 创建完容器后需开启映射过的端口

        添加

        firewall-cmd --zone=public --add-port=8080/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

       [root@localhost splus_scripts]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
       success
       [root@localhost splus_scripts]#

        重新载入

        firewall-cmd –reload 

       [root@localhost splus_scripts]# firewall-cmd --reload
       success
       [root@localhost splus_scripts]# 

      5、查看开放的端口

        firewall-cmd --zone=public --list-all

       [root@localhost splus_scripts]# firewall-cmd --zone=public --list-all
       public (active)
       target: default
       icmp-block-inversion: no
       interfaces: eth0 eth1
       sources:    services: dhcpv6-client ssh    ports: 443/tcp 21/tcp 161/tcp 623/tcp 8080/tcp 8081/tcp 3306/tcp 514/tcp    protocols:    masquerade: no    forward-ports:    sourceports:    icmp-blocks:    rich rules:    [root@localhost splus_scripts]#
     

          5、至此部署完成,可远程访问该宿主机地址和映射的端口进行访问

    环境部署中遇到的问题

      1、 docker容器和宿主机系统时间不一致问题

        解决方法:挂载localtime文件到容器内  ,保证两者所采用的时区是一致的

  • 相关阅读:
    TP5.0防跳墙访问
    TP5.0上传添加数据库
    抽象类与接口
    instanceof 关键字
    abstract 抽象类
    extends 继承
    单例模式
    类的加载过程和对象的创建
    静态成员变量和非静态成员变量的区别
    this关键字
  • 原文地址:https://www.cnblogs.com/yizhipanghu/p/9480747.html
Copyright © 2020-2023  润新知