Docker容器技术的初识和使用探索

举报
悟钧 发表于 2019/06/14 19:16:48 2019/06/14
【摘要】 docker是一项很好的技术,简单、稳定、好用,再加上华为云等云平台的加持,更加便利了我们做API、做工具、做应用、做解决方案的厂商,但任何技术都需要实践和落地,学习的关键在于输出,我们可以利用现有的资源,充分的提升自己的技术水平,参与开源、共享技术的生态中,并反馈自己的思考和实践

与Docker容器技术的第一次接触


第一次听说Docker,是在2015年的4月份,在贵州做客户拜访的时候,与另外一家软件厂商的技术专家沟通的时候,当时对于Docker容器技术进行了初步的 但了解,但未做深入的实践,当时的认知:相对于虚拟化技术,Docker容器技术更简单、高效,但使用场景和广度,在当时对于虚拟化的地位,还未撼动,但其后续的发展,还是很看好的,觉得未来肯定会形成趋势,且会大规模的应用。


与Docker容器技术的再次会面

2018年从从业了6年多的台资科技公司离职,最近的两三年,主要专注于产品管理,对技术未做深入研究,但最近两年发现一个很明显的趋势:技术和工具日新月异,越发的形成简单化模式,不管是技术还是业务人员,都无需再过多关注底层的基础工作,也就是产品管理中所讲的大道至简,从2019年开始,重新接触和实践当前的主流技术,包括APP、小程序、前端、中台、后台、数据库、容器等,包含Flutter、微信+支付宝+百度等小程序、Bootstrap4.x、Python3、Spring Boot、Spring Cloud、Docker、Ubantu、IDEA、VS Code、PostgreSQL、MongoDB、云计算、机器学习、数据仓库、DevOps等,主要的学习平台则集中在华为云、阿里云的云学院、慕课网等学习平台。


对Docker的实践汇总

最近的docker使用,主要是在阿里云和华为云平台,阿里云ECS和华为云ECS,因为本身docker与其宿主云平台及系统无依赖(安装、启动、关闭、移除、 、更新等命令还是在宿主环境,故会有差异,请注意区分)更,故此处直接说明所常用的操作和命令:


本文章主要的Linux环境是 Ubantu 16.4


1、下载amd64的官方最新稳定版Docker:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"


安装Docker CE版本:如果已修改镜像地址为阿里云,则可以直接使用下述方式,如果未修改,命令为 sudo apt-get install docker-ce

sudo apt-get install docker

安装docker.io

sudo apt-get install docker.io


2、创建docker组,防止每次都要用sudo命令执行docker命令:


sudo groupadd docker


将当前用户加入到组内:${USER} 不用修改,是直接取值的写法


sudo gpasswd -a ${USER} docker


3、重启docker:


sudo service docker restart


4、安装Tomcat容器:


查找Tomcat镜像:  docker search tomcat

拉取最新的镜像:    docker pull  docker.io/tomcat

查看当前所有镜像:  docker images

启动Tomcat容器:   docker run -p 8080:8080 docker.io/tomcat

Tomcat服务挂载:   docker run -d -v /opt/software/xxxx.net.cn:/usr/local/tomcat/webapps -p 8080:8080 docker.io/tomcat  

Tomcat配置挂载:    docker run -d -v /opt/software/tomcat-conf:/usr/local/tomcat/conf  -p 80:80 docker.io/tomcat 

制作Tomcat镜像:包括dockerFile和run.sh两部分

(1)dockerFile


FROM ubuntu:16.04 

MAINTAINER cc-man

#上传

ADD tomcat-website /opt/tomcat

COPY /run.sh /root/run.sh

RUN  chmod 777 /root/run.sh

ENTRYPOINT ["/root/run.sh"]


(2)run.sh


#!/bin/bash

sh /opt/tomcat/tomcat-website/bin/catalina.sh run


5、查看当前容器:


docker ps       #当前处于启动状态的所有容器

docker ps -a      #已创建的所有容器,包含退出、启动等全部状态

docker rm $(sudo docker ps -a -q)     #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)


6、文件夹复制:


docker cp {容器ID}:/user/local/tomcat/conf  /opt/software/tomcat-conf


根据实际需要,修改完成后,直接4、中的Tomcat配置挂载,启动即可


7、防火墙配置查看:


/sbin/iptables -L -n


其中,针对挂载启动和制作镜像特别说明如下:


如果是初次接触docker,我们会直接的认为,直接进入容器,修改相关配置,然后保存,重启容器即可,但docker不同的是,容器等同于对象实例,我们每次启动时,都会重新从镜像中读取相关配置项,并创建容器,那么如果我们直接进入容器,修改相关内容,那么根本上的镜像并没有变化,在重启容器后,新启动的容器,也就不会包含之前修改的内容,这也就是挂载和制作镜像的目的:


挂载启动:好处是我们可以把我们需要修改或保存的关键信息,放置在宿主机某一目录下,需要修改的时候,使用putty连接,或者使用FileZilla连接后,下载后修改,再上传,保证了即使我们重启容器,依然不受影响


镜像制作:通常包含镜像获取(也可直接跳过)——制作镜像——生成镜像——上传镜像——拉取镜像,阿里云和华为云均提供了容器镜像服务,可以按官方文档操作,也可以把镜像保存在本地,但一般不建议,如果比较多,容易记混,也不利于团队协作,对于比较常用的也可上传到第三方镜像,供他人使用


以上命令行,只是docker的一部分,九牛一毛,仅供大家参考,其实关键在于实践,想学习docker或是掌握docker容器技术,可以多些练习,当前的云平台中,都可以按需购买服务,每天几块钱或是几十块钱就可以了

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。