Linux学习(十)Docker安装、使用及总结

在这里插入图片描述

Docker文档:https://docs.docker.com/get-started/

Docker 架构

1、Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

2、Docker 容器通过 Docker 镜像来创建。

3、容器与镜像的关系类似于面向对象编程中的对象与类。
在这里插入图片描述

Docker的应用场景

1、Web 应用的自动化打包和发布。

2、自动化测试和持续集成、发布。

3、在服务型环境中部署和调整数据库或其他的后台应用。

4、从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

在这里插入图片描述

Docker简介很好的参考文章:https://blog.51cto.com/13043516/2119839

正文

Ubantu16.04下安装Docker环境

  1. 准备安装环境
    uname -r
    
    在这里插入图片描述
  2. 更新环境(因为在虚拟机下安装,更新环境first)
    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    
  3. 获取安装秘钥及下载镜像源(update即可下载)
    sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    
    echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
    
    sudo apt-get update
    
  4. 下载完成——正式安装
    sudo apt-get install docker-engine
    sudo apt-get update --fix-missing
    sudo apt-get install docker-engine
    
  5. 启动docker
    sudo systemctl enable docker
    sudo systemctl start docker
    
  6. 查看docker版本
    docker version
    
  7. 运行helloworld
    sudo docker run hello-world
    
    在这里插入图片描述

Docker配置自己的镜像helloworld

根据官方教程part2:https://docs.docker.com/get-started/part2/
教程2就是教我们熟悉Docker运行指令及运行步骤——发布一个app需要如下三个配置文件即可:

  1. 根据教程创建目录Dockerfile,创建三个文件(文件内容见上述part2链接):
    在这里插入图片描述
    在这里插入图片描述

  2. 进入Dockerfile,创建容器friendlyhello,运行镜像到浏览器

    cd Dockerfile
    sudo docker build --tag=friendlyhello .
    

    在这里插入图片描述

  3. 查看镜像

    sudo docker image ls
    

    在这里插入图片描述

    这里可以看到我同时运行了三个镜像:hello-world、mysql、friendlyhello(他们有自己的容器ID);这里就可以提现容器的特点:类似于在windows的任务管理器,他可以给每个进程(容器)分配不同的运行空间,并进行区分。

  4. 运行镜像

    sudo docker run -p 4000:80 friendlyhello
    

    在这里插入图片描述
    在这里插入图片描述

    到这里,我们的网页就推送成功了!步骤是很简单的。

  5. 现在让我们在后台以分离模式运行应用程序:

    sudo docker run -d -p 4000:80 friendlyhello
    

    在这里插入图片描述

  6. 停止程序:

    sudo docker container ls
    sudo docker container stop bf33c49412b5
    sudo docker container ls
    

    在这里插入图片描述

Docker配置Tomcat镜像

  1. 下载tomcat镜像,运行到8080端口:

    sudo docker pull  docker.io/tomcat
    sudo docker run -p 8080:8080 docker.io/tomcat
    

    在这里插入图片描述

    这里是不是很熟悉了呢,对于熟悉java项目的工程师们,到这一步就可以大展拳脚了。
    后面说一说如何通过外网访问,以及在docker下上传war进行,项目的发布。

  2. 查看本机ip:

    ifconfig
    

    在这里插入图片描述
    局域网Windows下——通过虚拟机ip和端口号查看虚拟机部署的网页:
    在这里插入图片描述

    外网访问:
    需要在阿里云或者其他云平台(拥有外网ip),部署完成后,可以通过公网ip(或域名)进行访问。

  3. 部署自己的web应用:
    (1) 查看正在运行的容器:tomcat的容器ID为:d3f9867d22bd
    (2)进入容器(这里是进入:容器/tomcat/bin/bash,这里是一个由容器装载的通道

    sudo docker ps
    sudo docker  exec -it   d3f9867d22bd   /bin/bash
    

    在这里插入图片描述

    现在就进入:容器/usr/local/tomcat#
    (1)可以在这里cd webapps进入webapps目录,
    (2)ls查看tomcat上已发布的内容,当然这里还为空:

    在这里插入图片描述

  4. 另打开一个终端,找到需要发布的war包(在mydockerfile目录下我有一个myweb.war

    sudo docker cp myweb.war d3f9867d22bd:/usr/local/tomcat/webapps
    

    在这里插入图片描述

  5. 现在切回tomcat终端,ls查看webapps目录:
    在这里插入图片描述

  6. 这里输入项目路径就可以查看我们的网页啦!
    在这里插入图片描述

现在有一个问题是 :每次重启后,webapps目录会清空,需要重新上传发布war包:
在这里插入图片描述
这是因为:docker在测试时,war项目会不断进行修改,如果修改完毕,确认最终发布版本!
如何配置Docker自启动就发布项目?
如何默认启动发布war包,和前面第二步建立Dockerfile,创建app和dockerfile.txt和程序进行发布,原理相同,把命令全部写到dockerfile中(启动镜像时:会自动添加本地war到tomcat容器目录下),当重新发布时,这样就不用手动配置了,比较方便:


参考教程:https://blog.csdn.net/qq_32351227/article/details/78673591
在这里插入图片描述
多镜像发布,就是生成新的镜像,在docker下启动,这里可以生成超多个:
在这里插入图片描述

总结

  • 镜像的理解:
    添加镜像就像在windows下打开一个个软件,在任务管理器中可以看到他们的运行状况,可以不限的同时打开多个程序,运行;有的程序运行需要配置——端口号;
  • Docker命令的理解:
    (1)程序(镜像)的运行(docker run)和停止(docker run -d)以及应用下载(sudo docker pull docker.io/tomcat )这些都是封装在docker命令下的;
    (2)Docker命令和ROS操作系统命令:运行(rosrun)、(roslaunch)以及下载(rosdep install --from-paths src --ignore-src --rosdistro=kinetic)都有相似之处。
  • Docker用途的理解:
    (1)Docker是一个客户端/服务器(C/S)架构的程序,Docker客户端只需向Docker服务器或守护进程(有时也称为Docker引擎)发出请求,服务器或守护进程将完成所有工作并返回结果。
    (2)Docker提供docker命令工具和一整套RESTful APT来与守护进程交互,用于可以在同一台宿主机运行Docker守护进程和客户端,也可以从本地Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
    在这里插入图片描述

附:
Mysql镜像的添加:https://blog.csdn.net/bingzhongdehuoyan/article/details/79412914

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值