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文件到容器内  ,保证两者所采用的时区是一致的

docker 部署应用的更多相关文章

  1. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  2. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  3. 程序开发使用docker部署

    我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...

  4. 我使用celery以及docker部署遇到的问题

    首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...

  5. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  6. 在生产环境使用Docker部署应用

    导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...

  7. Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...

  8. NET Core Docker部署

    NET Core Docker部署 前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行 ...

  9. 我使用 Docker 部署 Celery 遇到的问题

    问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ...

  10. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

随机推荐

  1. B1029/A1048 旧键盘损坏了,在输入一段文字时坏了的键不可以正常使用,现给出应输入的一段文字,和实际输出的文字,找出坏掉的键。

    #include<cstdio> #include<cstring> const int maxn = 1000; bool HashTable[maxn] = { false ...

  2. linux-shell 判断当前用户是否是root用户

    环境变量UID中保存的是用户ID. root用户的UID是0. #! /bin/bash if [ $UID -ne 0 ]; then echo Non root user. Please run ...

  3. HUAWEI AppGallery Connect翻译服务升级,方便应用出海本地化

    HUAWEI AppGallery Connect翻译服务全新升级,携手新宇智慧.语言桥等多家服务商为全球开发者提供优质的翻译服务,解决应用在全球分发时面临的多语言本地化问题,通过平台化与全环节的翻译 ...

  4. IOS Widget(1):概述

    引言   本系列文章作者是安卓开发,以安卓开发的视角学习IOS小组件,记录一下踩坑记录,如有讲得不对的地方,路过大佬多包涵.如果你是想深入学习小组件,建议您顺着笔者的编号顺序阅读本系列文章.如果曾经了 ...

  5. python3使用迭代生成器yield减少内存占用

    技术背景 在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中.其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会 ...

  6. hdu4772 水模拟

    题意:       给你两个矩阵,问你两个矩阵的最大相同元素个数(位置也要求相同),矩阵可以90旋转多次. 思路:       水题,直接模拟就行了,方法很多,可以直接写坐标关系,或者一层一层处理,就 ...

  7. POJ 1679 判断最小树是否唯一

    题意:       给你一个图,问你最小树是否唯一,唯一则输出最小数的权值,不唯一输出Not Unique! 思路:      题目问的是最小树是否唯一,其实也就是在问次小树是否等于最小树,如果等于则 ...

  8. POJ2983 查分约束系统

    题意:        给你n个点,然后给你两种情况,P a b c,表明a在b的北边c那么远,V a b 表明a在b的北边(距离最少是1),问你这些条件是否冲突. 思路:       一开始想用带权并 ...

  9. [CTF]盲文对照表

    [CTF]盲文对照表 摘自:https://wenku.baidu.com/view/28b04fd380eb6294dd886ca7.html 学点盲文 盲文又称点字,国际通用的点字由6个凸起的圆点 ...

  10. 前端不得不了解的TCP协议

    背景 早期的网络是基于OSI(开放式系统互联网,一般叫OSI参考模型)模型,该模型是由ISO国际标准组织制定的,包含了七层(应用层.表示层.会话层.传输层.网络层.数据链路层.物理层),即复杂又不实用 ...