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文件到容器内 ,保证两者所采用的时区是一致的
docker 部署应用的更多相关文章
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- Docker部署Hadoop集群
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
- 程序开发使用docker部署
我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...
- 我使用celery以及docker部署遇到的问题
首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...
- Docker部署SDN环境
2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...
- 在生产环境使用Docker部署应用
导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...
- NET Core Docker部署
NET Core Docker部署 前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行 ...
- 我使用 Docker 部署 Celery 遇到的问题
问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ...
- Docker部署Elasticsearch集群
http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...
随机推荐
- 一文简述JAVA内部类和异常
内部类和异常 内部类 在一个类的内部定义的一个类,例如,A类中定义了一个B类,则B类相对于A类就是内部类,而A类相对于B类就是外部类 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 pub ...
- Java(41-55)【 流程控制语句】
1. 2.练习题if语句的使用 3.选择语句 4. 5.循环结构 6.continue和break
- Day01_07_Java关键字和字面值
关键字 https://www.cnblogs.com/chenglc/p/6922834.html 字面值(所见即所得的数据) 10 100 3.14 'a' "abc" tur ...
- Day05_23_封装
封装 什么是封装? 封装可以被认为是一个类的保护屏障,防止该类的代码和数据被外部类定义的代码随机访问.要访问该类的代码和数据,必须通过严格的接口控制.封装最主要的功能在于我们能修改自己的实现代 码,而 ...
- Typora+PicGo+阿里云写博客笔记
Typora+PicGo+阿里云写博客笔记 选择这三个工具的理由 我一直有在使用typora使用mardown写作,毕竟typora很香,可以实时预览,非常丝滑. 配合上PicGo这个图床工具简直绝了 ...
- Java获取多线程执行结果方式的归纳与总结
在日常的项目开发中,我们会经常遇到通过多线程执行程序并需要返回执行结果的场景,下面我们就对获取多线程返回结果的几种方式进行一下归纳,并进行简要的分析与总结. 一.Thread.join 在一些简单的应 ...
- BLE链路层空中包格式
空中包格式 BLE链路层的空中包格式非常简单,它所有的空中包都遵循下图所示的格式: 有上图可见,BLE空中包由4个部分组成,他们分别是: 前导码(Preamble) 访问地址(Access Addre ...
- hdu4411 经典费用里建图
题意: 给以一个无向图,0 - n,警察在0,他们有k个警队,要派一些警队去1--n个城市抓小偷, 问所有吧所有小偷全抓到然后在返回0的最小路径和是多少,当地i个城市被攻击的时候他会通知i ...
- hdu1542 线段树扫描线求矩形面积的并
题意: 给你n个正方形,求出他们的所占面积有多大,重叠的部分只能算一次. 思路: 自己的第一道线段树扫描线题目,至于扫描线,最近会写一个总结,现在就不直接在这里写了,说下我的方 ...
- Intel汇编语言程序设计学习-第五章 过程-下
5.3.3 库测试程序 测试程序#1:整数I/O 该测试程序把输出文本的颜色改为蓝底黄字,然后以十六进制数显示七个数组的内容,最后提示用户输入一个有符号整数,再分别以十进制.十六进制和二进制格式重复 ...