【原创】Docker入门探索

刚开始对Docker的印象是一个低配版虚拟机,沙箱机制的容器。工作中项目接触的少,所以对于这项用不着的技术一直停留在最初的印象。

现在互联网行业飞速发展,公司同时也在飞速发展。随着业务量不断扩大,公司也不得不升级为微服务式架构。微服务架构的粒度小,耦合低。同时对于服务器的要求也越来越高,为何方便快捷的搭建环境和管理,使用Docker成为了必要。接下来进入主题:

1,Docker的Windows安装

 首先进入Docker官网:https://www.docker.com
 get started 获取下载链接
 下载完成直接运行安装
 然后失败?
 很正常,首先windows10必须是企业版,因为win10版本的docker依赖hyper-v。如果不是请升级系统为企业版
 然后安装完成之后运行失败?
 根据提示修复错误,我遇到的问题解决方式是:1,通过bios开启虚拟化,2,开启hyper-v

2,Docker入门级使用

1,什么是Docker镜像
 Doker的精髓,也是docker的便利之处。镜像可以理解为一个环境包。可移植,减去重复部署环境的烦恼。
2,如何保存自己的云Docker镜像
我用的是阿里云镜像,进入阿里云————>选择产品与服务————>容器镜像服务
3,制作镜像(使用Dockerfile方式)
Dockerfile内容:

#使用的基础镜像
FROM centos

#作者信息
MAINTAINER  "yuchuan.zeng@hand-china.com"

#创建功能目录
RUN mkdir -p /home/hms

#把当前目录下的jdk文件夹添加到镜像
ADD jdk-8u91-linux-x64.tar.gz /home/hms

#把当前目录下的tomcat文件夹添加到镜像
ADD apache-tomcat-8.5.12.tar.gz /home/hms

#添加环境变量
ENV JAVA_HOME /home/hms/jdk1.8.0_91
ENV CATALINA_HOME /home/hms/apache-tomcat-8.5.12
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

WORKDIR /home/hms/apache-tomcat-8.5.12

#暴露8080端口
EXPOSE 8080

RUN chmod +x /home/hms/apache-tomcat-8.5.12/bin/catalina.sh
RUN chmod 777 -R /home/hms
#启动时运行tomcat
CMD ["/home/hms/apache-tomcat-8.5.12/bin/catalina.sh", "run"]

然后需要把Dockerfile打成镜像:

    docker build -f Dockerfile  -t  hms-tomcat:TAG  .
    # -f Dockerfile路径,默认是当前目录
    # -t 指定新镜像的名字以及TAG
    # .  指定路径为当前路径
成果效果图

启动镜像:

docker run --name test-tomcat   -itd  -p 9000:8080  -v 主机目录:容器目录:rw  镜像ID或镜像名:TAG
# -i 以交互模式运行容器
# -t 分配一个伪终端,即命令行,通常组合来使用
# -p 指定映射端口,将主机端口映射到容器内的端口
# -d 后台运行容器
# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

查看logs指令:

  docker logs -f --tail=100 test-tomcat

进入容器指令:

  win: winpty docker exec -it b78da88433cd sh
  linux: docker exec -it b78da88433cd bash

如果对自己的镜像测试满意,则上传阿里云

打成tag:
docker tag [镜像ID]   registry.cn-hangzhou.aliyuncs.com/circle-zeng/hms:[镜像版本号]
打tag作用是建立传输管道,告诉docker往哪儿传输

push:
docker push registry.cn-hangzhou.aliyuncs.com/circle-zeng/hms:[镜像版本号]

以后类似的环境就可以根据这个基础环境为基础引用了,如下Dockerfile:
#使用自己的基础镜像
FROM registry.cn-hangzhou.aliyuncs.com/circle-zeng/hms:2.0.0

后续使用镜像时,可能需要为镜像加上hosts配置

docker run --add-host 域名:ip  --add-host 域名:ip  --name hmap-tomcat -itd -p 9090:8080 hmap-tomcat:3.0  -v 主机目录:容器目录:rw  
使用docker-compose,在当前目录下建立docker-compose.yaml
version: "2"
services:
  mysql:
    container_name: mysql2  # 容器名
    image: # 容器所使用的镜像,镜像形式为[username 或 url]/repository:tag
    ports:
      - "3306:3306" # [本机端口:容器内端口] 将本机端口与docker容器内部应用的端口映射,以提供外部对容器内应用的访问能力
    environment:
      MYSQL_ROOT_PASSWORD: root # 设置mysql密码
    volumes:
      - ./mysql/mysql_data:/var/lib/mysql # 将mysql中的数据文件映射到本机文件夹,":"前的为本机地址,后的为容器内地址
      - ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf # 将mysql的配置文件映射到本机文件

建立之后执行:docker-compose -f docker-compose.yaml  up -d  启动

补充:
docker的挂载功能非常实用,对应docker run中-v指令,指定主机目录挂载到容器目录。这样的好处在于tomcat部署项目时,直接把war包目录挂载到容器tomcat的webapps目录下,无需进入容器内就可以进行应用的微调整

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 224,535评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,106评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 171,668评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,863评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,874评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,362评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,748评论 3 428
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,717评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,249评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,280评论 3 345
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,408评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,020评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,727评论 3 337
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,191评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,320评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,946评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,473评论 2 365

推荐阅读更多精彩内容

  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,254评论 2 10
  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,394评论 1 39
  • Docker入门 Docker命令官方示例 [toc] 1. Docker架构 1.1 Docker镜像与Dock...
    CaiGuangyin阅读 1,842评论 2 6
  • 德清精品民宿推荐:青樾里 文 | 乡旅报告 扎根在欧洲复古空间的青樾里,总让人有点穿越感,明明是莫干山,走进黄墙庭...
    乡旅报告阅读 273评论 0 0
  • 午后,吹来一阵风 像一位腼腆的姑娘 羞涩间吃力的半推半搡 把炎热劝送到云外的远方 顿时,小院里 感受到难得的一丝丝...
    金郝庄宣传阅读 362评论 0 2