docker基础学习

  •  Docker简介
           Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotClouw公司。Docker 自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐断形成了围Docker的生态体系。dotCloud 公司后来也改名为Docker Ine。
           Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并缩短从编写到部署运行代码的周期。 
     
    Docker官方网址: https://docs.docker.com/  英文地址
    Docker中文网址: http://www.docker.org.cn/ 中文地址  
     
    Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
  • Docker架构
     客户端→Docker_Host(宿主机)→仓库
      
     
    Docker daemon( Docker守护进程)
    Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。可通过 Docker客户端与之通信。 
     
    Client( Docker客户端)
    Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon通信。图中, docker build等都是 Docker的相关命令。 
     
    Images( Docker镜像)
    Docker镜像是一个只读模板,它包含创建 Docker容器的说明。它和系统安装光盘有点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行 Docker镜像中的程序。 
     
    Container(容器)
    容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API或者 CLI命令来启停、移动、删除容器。
    Registry
    Docker Registry是一个集中存储与分发镜像的服务。构建完 Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助 Docker Registry来避免镜像的手动复制。 
     
    一个 Docker Registry可包含多个 Docker仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker镜像。这跟 Maven的仓库有点类似,如果把 Docker Registry比作 Maven仓库的话,那么 Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。。
  • Docker安装
           Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。
  1. 查看你当前的内核版本
    Docker 要求 CentOS 系统的内核版本在 3.10以上。 
    // 查看内核版本
    uname -r

     
     
  2. 升级所有包
    // 使用root账号
    yum -y update

     等待执行!!!这里估计等待好久
     
  3. 卸载旧版本(如果安装过旧版本的话,没安装可以跳过此步骤) 
    yum remove docker docker-common docker-selinux docker-engine
  4. 安装需要的依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
  5. 设置yum源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  6. 查看仓库中所有docker版本
    yum list docker-ce --showduplicates | sort -r
  7. 安装docker
     
     #这里默认安装的是最新稳定版
    sudo yum install -y docker-ce    
  8. 启动并加入开机启动
    // 启动docker
    systemctl start docker
    // 设置为开机启动
    systemctl enable docker
    
  9. 验证是否安装成功(有clientservice两部分表示docker安装启动都成功了) 
    docker version

     
     安装完成!!!
  1. docker常用命令
    启动systemctl start docker
    停止systemctl stop docker
    重启systemctl restart docker
    查看dockers version
    查看dockers info
  2.  镜像常用命令
     
    搜索镜像docker search javaDocker就在Docker Hub搜索含有 java这个关键词的镜像。如nginx: docker search nginx
    下载镜像docker pull java:8指定下载jdk1.8,如果不指定得话默认下载最新的。
    查看镜像docker images查看所有已经下载的镜像
    删除镜像docker rmi d23bdf5b1b1b通过docker images查看镜像image_id, 然后通过image_id删除: docker rmi image_id
    启动镜像docker run -d -p 80:80 nginx-d:表示后台启动
    启动镜像docker run -p 80:80 nginx非后台启动
       
       
     
  3. 启动镜像 
    // 81: 宿主机端口  80: 容器内部端口号   一般都设为一样,这里是为了区分
    docker run -d -p 81:80 nginx
    浏览器访问:  http://虚拟机IP:81/     在虚拟机访问: curl 容器内部的ip:80  
    注意:  使用 docker run命令创建容器时,会先检查本地是否已经下载过。如果没有, Docker就会自动下载镜像并启动。
  4.  容器相关命令
     
    查看容器docker ps -a查看所有容器 --可以获取容器ID、镜像......
    查看容器docker ps查看运行中的容器
    卸载容器docker rm 容器id通过docker ps -a获取CONTAINER ID(容器id)
    启动容器docker start 容器id 
    停止容器docker stop 容器id 
    重启容器docker restart 容器id 
    查看单个容器信息docker inspect 18fe19b57db418fe19b57db4:容器id
    进入容器目录docker container exec -it 容器id  /bin/bash 
    查看容器启动信息docker logs -f 容器id                                                   
    容器复制docker cp /usr/share/plugins/aa   容器Id:/usr/share/plugins/aa    将服务的aa目录下文件服务到容器内                                               
  5.  查看容器的信息
    // 查看容器的CONTAINER ID
    docker ps
    // 通过容器CONTAINER ID查看容器信息
    docker inspect 18fe19b57db4

     这里我们查看到了刚刚启动的nginx,看看容器的ip地址是多少
    在虚拟机里使用容器的IP访问80端口的nginx:  curl 172.17.0.2:80 
  6. 进入容器 
     我们知道虚拟机是个linux服务器,docker容器相当于一个,虚拟机中创建的虚拟机,如果进入这个虚机查看呢:
     
    // 查看运行的容器
    docker ps
    // 进入的容器
    docker container exec -it 4b1163397579  /bin/bash
    // 退出
    exit
  7. 卸载镜像和容器  
    // 通过docker ps -a查看容器id
    docker rm 容器id
    // 通过docker images 查看镜像id
    docker rmi 镜像id
  • 基于Docker部署springboot项目
  1. 创建springboot项目,并打包成jar包,将jar重命名为app-springboot.jar
  2. 上传文件 
    // 创建目录
    mkdir /usr/local/dockerapp
    
    
    将app-springboot.jar包上传到/usr/local/dockerapp目录下 
  3. 添加配置
    // 进入目录
    cd /usr/local/dockerapp
    // 创建并编辑文件
    vim Dockerfile
    ###############配置内容如下###################
    ###指定java8环境镜像
    FROM java:8
    ###复制文件到容器,并重命名为app.jar
    ADD app-springboot.jar /app.jar
    ###声明启动端口号
    EXPOSE 8080
    ###配置容器启动后执行的命令
    ENTRYPOINT ["java","-jar","/app.jar"]
    
    查看文件cat /usr/local/dockerapp/Dockerfile
  4. 使用docker build命令构建镜像
    cd /usr/local/dockerapp
    # 格式: docker build -t 镜像名称:标签 Dockerfile的相对位置   '.': 表示相对文件路径
    docker build -t app-springboot .
    
    

     
  5. 查看是否成功
    docker images

     // 如果指定了java配置,而本地没有,docker也会帮你下载
  6. 运行
    docker run -p 8080:8080 app-springboot .
  7. 浏览器访问
     http://192.168.2.116:8080/index
     
     完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值