栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Docker总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker总结

Docker

  1. Docker简介

    虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机
    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
    Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
    
  2. 沙箱机制

    一、沙箱是什么?
      沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响。
    
    二、沙箱的应用
      (1)搭建测试环境。沙箱的应用只能访问自己的应用访问目录,而不能应用之间的资源进行共享,这样就形成了一个相对安全的机制,由于沙箱具有非常良好的独立性、隔离性,所以能够搭建一些具有高风险的软件进行测试。
    
      (2)应用容器的利用,如Docker就是完全使用沙箱机制,这样使得应用组件经过Docker的封装,可以随意移植到服务上。
    
  3. 镜像和容器

    镜像:类似虚拟机的root文件系统 提供容器运行时所需的程序 库 资源 配置等文件 (还包括匿名卷 环境变量 用户)
    容器: 运行和隔离应用 是镜像运行的实体 类似面向对象设计 镜像是静态的定义 容器是镜像运行时的实体
    仓库:集中存放镜像的地方
    
  4. 镜像的相关命令

    docker images:查看所有镜像
    Docker var/lib/docker:存放镜像的位置
    docker search 镜像名称:搜索镜像
    docker pull 镜像名称:拉取镜像
    docker rmi -f 镜像ID 强制删除镜像
    docker rmi -f 镜像名1:TAG 镜像名2:TAG ->删除多个镜像
    docker rmi -f $(docker images -qa)
    
  5. 容器的相关命令

    docker ps:查看正在运行的容器
    docker ps -a:查看所有的容器
    docker ps -l:查看最后一次运行的容器
    docker ps -f status=exited:查看停止的容器
    -i:表示运行容器
    -t:表示容器启动后会进入命令行
    --name:为创建的容器命名
    -v:表示目录映射关系 目录挂载
    -d:在run后 不会进入容器,守护方式的容器在后台运行
    -p:表示端口映射 前者是宿主机的端口,后者是容器内的映射端口
    /bin/bash:放在镜像后的命令 这里希望有一个交互式的shell
    exit:退出
    Ctrl+q+p:退出容器不停止
    ================
    1.交互式方式创建容器
    docker run -it --name=xx centos:7 /bin/bash
    2.创建后台容器
    docker run -id --name=嘻嘻嘻 centos:8
    3.进入容器:docker attach 容器Id
      docker exec -it 容器名 /bin/bash
    4.启动和停止容器:
      docker stop 容器名称/Id
      docker start 容器名称/Id
    5.文件拷贝:docker cp 文件 容器名称:容器目录
      docker cp 容器名:容器目录 需要拷贝到的地方
    6.目录挂载:
      docker run -id --name=容器名 -v Linux中的目录:容器中的目录;操作Linux的目录相当于操作容器中的目录
    7.删除容器:docker rm 容器名/Id;-f强删
    8.停止容器:stop 
    9.重启:restart
    
  6. 应用部署

    1.MySQL部署
    docker run -di --name=mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
    -e 添加环境变量
    2.Tomcat部署
    docker run -id --name=xxx -p port:port -v linux目录:容器目录
    3.Nginx部署
    docker run -id --name -p port:port nginx镜像
    
    4.Redis部署
    docker run -id --name=xxx -p port:port redis镜像
    
  7. 迁移和备份

    1.容器保存为镜像:docker commit 容器名称 镜像名称
    2.镜像保存为tar文件:docker save -o tar文件名 镜像名
    3.镜像恢复和迁移:docker rm 镜像名/id
      docker load -i 保存的镜像tar
    
  8. Dockerfile

    Dockerfile其实就是一个文本文件,由一系列命令和参数构成,Docker可以读取Dockerfile文件并根据Dockerfile文件的描述来构建镜像。
    
  9. Docker私有仓库

    1.启动私有仓库
        docker run -di --name=registry -p port:port 镜像名
    2.修改daemon.json vi /etc/docker/daemon.json
            "insecure-registries":["ip地址"] 目的是让容器信任ip地址
    3.重启:systemctl restart docker
    4.上传到私有库:
       #标记镜像为私有仓库的镜像
       docker tag jdk1.8 id/jdk1.8
       重启私有仓库容器:
        docker start registry
       上传标记的镜像:
        docker push ip/jdk1.8
            
        拉取 pull ip/镜像名
    
  10. 镜像发布

    1. 登录阿里云Docker Registry
    $ docker login --username=牧者心牧天下 registry.cn-hangzhou.aliyuncs.com
    用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
    
    您可以在访问凭证页面修改凭证密码。
    
    2. 从Registry中拉取镜像
    $ docker pull registry.cn-hangzhou.aliyuncs.com/mytest_sun/jdk:[镜像版本号]
    3. 将镜像推送到Registry
    $ docker login --username=牧者心牧天下 registry.cn-hangzhou.aliyuncs.com
    $ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/mytest_sun/jdk:[镜像版本号]
    $ docker push registry.cn-hangzhou.aliyuncs.com/mytest_sun/jdk:[镜像版本号]
    请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
    
    4. 选择合适的镜像仓库地址
    从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
    
    如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。
    
    5. 示例
    使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
    
    $ docker images
    REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
    $ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
    使用 "docker push" 命令将该镜像推送至远程。
    
    $ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
    
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号