zoukankan      html  css  js  c++  java
  • Docker 初体验

    Docker概述:

      Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker是供开发人员和系统管理员 使用容器构建,共享和运行应用程序的平台。使用容器来部署应用程序称为容器化。容器不是新的,但用于轻松部署应用程序的容器却是新的。容器化越来越受欢迎,因为容器是:

    • 灵活:即使最复杂的应用程序也可以容器化。
    • 轻量级:容器利用并共享主机内核,在系统资源方面比虚拟机更有效。
    • 可移植:您可以在本地构建,部署到云并在任何地方运行。
    • 松散耦合:容器是高度自给自足并封装的容器,使您可以在不破坏其他容器的情况下更换或升级它们。
    • 可扩展:您可以在数据中心内增加并自动分发容器副本。
    • 安全:容器将积极的约束和隔离应用于流程,而无需用户方面的任何配置。

    Docker应用场景:

    1. 有助于Microservices的落地和部署
    2. 充分利用物理机资源,同时能够整合服务器资源
    3. 提高开发效率,测试效率,部署效率,有利于DevOps的落地,CICD
    4. 云原生落地,应用更好地迁移
    5. ...

    Image Container 的关系:

      Container images become containers at runtime and in the case of Docker。containers- images become containers when they run on Docker Engine.

      其实说白了可以将Image当成一个Java类,而container 是new出来的 一个个实例对象。

    容器和虚拟机:

      容器在Linux上本地运行,并与其他容器共享主机的内核。它运行一个离散进程,不占用任何其他可执行文件更多的内存,从而使其轻巧。相比之下,虚拟机(VM)运行成熟的“guest”操作系统,并通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM会产生大量开销,超出了应用程序逻辑所消耗的开销。它两的区别如下:

    环境准备:

      我这里是采用的 VMware 的方式来安装Docker,也可以采用 vagrant+virtual box 的方式搭建虚拟机。我的环境是Centos7 的虚拟机环境。

      若使用vagrant+virtual box 的方式搭建虚拟机,基本操作如下:

    下载安装 vagrant :

    01 访问Vagrant官网
        https://www.vagrantup.com/
    02 点击Download
        Windows,MacOS,Linux等
    03 选择对应的版本
    04 傻瓜式安装
    05 命令行输入vagrant,测试是否安装成功

    下载安装 virtual box:

    01 访问VirtualBox官网
        https://www.virtualbox.org/
    02 选择左侧的“Downloads”
    03 选择对应的操作系统版本
    04 傻瓜式安装
    05 [win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误
     (1)打开服务
     (2)找到Device Install Service和Device Setup Manager,然后启动
     (3)再次尝试安装

    安装 centos7:

    01 创建first-docker-centos7文件夹,并进入其中[目录路径不要有中文字符]
    02 在此目录下打开cmd,运行vagrant init centos/7
      此时会在当前目录下生成Vagrantfile
    03 运行vagrant up[注意不要运行,拉取远端的centos7太慢]
      此时会找centos7的镜像,本地有就用本地的,本地没有就会拉取远端的
    04 准备centos7的box (1)选中命令行中提示的链接   比如 https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box  (2)复制到迅雷中下载  (3)vagrant box add centos/7 D:迅雷下载virtualbox.box  (4)vagrant box list 查看本地的box[这时候可以看到centos/7] 05 根据本地的centos7 box创建虚拟机   vagrant up[打开virtual box,可以发现centos7创建成功] 06 vagrant基本操作 (1)vagrant ssh    进入刚才创建的centos7中  (2)vagrant status  查看centos7的状态  (3)vagrant halt  停止centos7  (4)vagrant destroy  删除centos7  (5)vagrant status  查看当前vagrant创建的虚拟机  (6)Vagrantfile中也可以写脚本命令,使得centos7更加丰富  但是要注意,修改了Vagrantfile,要想使正常运行的centos7生效,必须使用vagrant reload

      至此,使用vagrant+virtualbox搭建centos7完成,后面可以修改Vagrantfile对虚拟机进行相应配置  若想通过Xshell连接:

    01 查看centos7相关信息
        vagrant ssh-config
        关注:Hostname Port IdentityFile
    02 Xshell连接
        IP:127.0.0.1
        port:2222
        用户名:vagrant
        密码:vagrant
        文件:Identityfile指向的路径
    03 使用root账户登录
        sudo -i
        vi /etc/ssh/sshd_config
        修改PasswordAuthentication yes
        passwd修改密码
        systemctl restart sshd
        root vagrant 登录

    Docker 安装:

    1.首先我们先卸载原来的Docker安装环境,yum list installed | grep docker 列出安装过的包, sudo yum -y remove docker-engine.x86_64  删除对应的安装。rm -rf /var/lib/docker 删除所有镜像容器等。

    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine

     运行成功的界面如下:

    2.安装Docker环境所需的相关依赖

    sudo yum install -y yum-utils 
      device-mapper-persistent-data 
      lvm2

    3.设置docker仓库 [设置阿里云镜像仓库]。

    sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo

      上面这个Docker仓库出现问题则使用阿里云的:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

      address:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,设置阿里云镜像加入器.登录阿里云控制台,找到镜像加速器,执行对应命令:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://1m38pnqb.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

      更新yum缓存:sudo yum makecache fast

    4.安装Docker:

    sudo yum install docker-ce docker-ce-cli containerd.io

      如果需要指定版本则:yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io   

      安装完Docker后会创建一个本地网卡:

    5.启动docker并且设置为开机启动:

    sudo systemctl start docker && sudo systemctl enable docker

    6.测试是否安装成功:成功则答应出相关的信息

    sudo docker run hello-world

      查看docker版本信息:

    docker version

    docker pull在哪拉取的镜像?:hub.docker.com

      默认是最新的版本,可以在后面指定版本":" 。比如拉去centos  7.6.1810版本:

      Docker常用的基本命令:

    docker pull    拉取镜像到本地
    docker images 查看当前的镜像信息
    docker rmi -f 删除对应镜像 docker run 参数 images    根据某个镜像创建容器
    -d         让容器在后台运行,其实就是一个进程 --name       给容器指定一个名字 -p         将容器的端口映射到宿主机的端口 docker exec -it  进入到某个容器中并交互式运行
    docker ps 查看当前运行的容器 -a可以查看退出的容器
    docker restart d5476b626a01 重启容器
    docker stop  quizzical_almeida 停止某个容器
    docker logs 查看容器日志
    exit 退出容器
    docker rm $(docker ps -aq) 删除所有容器

    Docker 安装 Tomcat:

    1.拉取镜像 docker pull tomcat

    2. 查看镜像 docker images

    3.创建一个名字叫 tomcat-wuzz 的tomcat容器,且后台运行 将其默认端口8080 映射到centos系统的 9991 端口上。

    4.查看容器  docker ps

    5.进入tomcat容器 docker exec -it tomcat-wuzz /bin/bash 。

    6.查看内容 ls 可以看到跟我们传统的方式目录下内容是一致的。

    7.进入bin目录并且启动tomcat:

    8.在物理主机这边访问:http://192.168.1.101:9991/ ,我这边的虚拟机IP地址是192.168.1.101.能成功访问。

     Docker 其他常见的容器安装可以参考 https://www.runoob.com/docker/docker-tutorial.html

  • 相关阅读:
    Ext.js给form加背景图片
    Linux安装Scala
    idea 无法创建Scala class 选项解决办法汇总
    idea 无法创建Scala class 选项解决办法汇总
    i++和++i的区别,及其线程安全问题
    java面试题
    大数据学习——scala入门程序
    大数据学习——spark安装
    大数据学习——kafka+storm+hdfs整合
    大数据学习——日志监控告警系统
  • 原文地址:https://www.cnblogs.com/wuzhenzhao/p/11420246.html
Copyright © 2011-2022 走看看