zoukankan      html  css  js  c++  java
  • Docker入门操作

    docker

    2013年发布

    一、环境配置难题

    开发环境运行没有问题,生产不能用,因为生产缺乏某些组件

    换一台机器,需要重新配置一遍

    能不能从根本上解决问题:安装的时候,把原始环境,一模一样地安装一遍

    二、虚拟机

    带环境安装的一种解决方案

    缺点:
    占用资源多:虚拟机本身需要消耗资源,程序1MB,环境几百MB

    冗余步骤多:虚拟机是完整的操作系统,一些系统级别的操作步骤,无法跳过,比如用户登录

    启动慢:启动操作系统要多久,启动虚拟机就要多久

    三、Linux容器

    针对虚拟机的缺点,Linux发展出另外的一种虚拟化技术:Linux容器

    Linux容器不是模拟完整的操作系统,而是对进程进行隔离,即在正常进程的外面,套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,实现与底层系统的隔离

    优点:
    启动快:容器里面的应用,直接就是底层系统中的一个进程,启动容器相当于启动本机的进程。而不是启动操作系统

    占用资源少:容器只占用需要的资源,不占用没有用到的资源

    体积小:只包含用到的组件,而虚拟机包含了整个操作系统。所以容器文件比虚拟机文件小的多

    四、Docker是什么

    Docker属于Linux容器的一种封装,提供了简单易用的容器使用接口

    Docker将应用程序与该程序的依赖,打包到一个文件里面,运行这个文件,就会产生一个虚拟容器

    程序在虚拟容器中运行,就好像运行在真正的物理机上一样

    Docker提供版本管理、复制、分享、修改等功能,就像管理普通代码一样管理Docker容器

    五、Docker的用途

    Docker的主要用途,目前有三大类

    1、提供一次性的环境

    本地测试他人的软件程序

    2、提供弹性的云服务

    Docker容器可以随开随关,很适合动态的扩容和缩容

    3、组建微服务架构

    通过多个容器,一台机器可以跑多个服务,在本机就可以模拟出微服务架构

    六、Docker安装

    1、Linux安装

    Docker要求CentOS内核版本高于3.10
    uname -r 查看内核版本

    安装必要的系统工具:
    yum install -y yum-utils device-mapper-persistent-data lvm2

    添加软件源信息:
    yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    更新 yum 缓存:
    yum makecache fast

    安装 Docker-ce:
    yum -y install docker-ce

    启动 Docker 后台服务
    systemctl start docker

    测试运行 hello-world
    docker run hello-world

    看到hello from docker证明安装成功

    2、windows安装

    win10专业版,直接安装 docker for windows 即可

    win10普通版、win7 win8 ,需要安装 docker tool box

    toolbox 配置:
    右键 Docker Quickstart Terminal
    “C:Program FilesGitinash.exe” --login -i “C:Program FilesDocker Toolboxstart.sh”
    把这个位置配成你本机的git位置 修改后面这个脚本

    DOCKER_MACHINE=”D:Docker Toolboxdocker-machine.exe”

    STEP=”Looking for vboxmanage.exe”
    VBOXMANAGE=”C:Program FilesOracleVirtualBoxVBoxManage.exe”

    #if [ ! -z "$VBOX_MSI_INSTALL_PATH" ]; then
    #VBOXMANAGE="${VBOX_MSI_INSTALL_PATH}VBoxManage.exe"
    #else
    #VBOXMANAGE="${VBOX_INSTALL_PATH}VBoxManage.exe"
    #fi

    七、image文件

    Docker把应用程序及其依赖,打包在image文件里面,只有通过image文件,才能生成docker容器

    Docker可以根据image文件生成容器实例

    image文件可以继承。在实际开发中,一个image文件往往通过继承另一个image文件,加上一些个性化的设置而生成

    启动容器
    docker run hello-world

    列出所有image文件
    docker image ls

    删除image文件
    docker image rm image文件名

    使用docker-machine stop default停掉Docker的虚拟机
    使用docker-machine start default开启Docker的虚拟机

    八、配置阿里云docker镜像加速器

    1. 注册阿里云,获得专属加速器地址

    2. hsiehchou@DESKTOP-KJDN870 MINGW64 /d/Docker Toolbox
      sudo sed -i “s|EXTRA_ARGS=’|EXTRA_ARGS=’–regis
      try-mirror=https://********.mirror.aliyuncs.com |g” /var/lib/boot
      2docker/profile
      docker@default:~$ exit

    3. hsiehchou@DESKTOP-KJDN870 MINGW64 /d/Docker Toolbox
      $ docker-machine restart default

    九、安装redis

    1、搜索镜像

    docker search redis

    2、拉取镜像

    docker pull redis

    3、启动redis

    docker run --name myredis -p 6379:6379 -d redis redis-server

    -d表示后台运行

    -p表示端口号,左边的6379表示win10系统端口考,右边表示容器中redis端口号

    --name表示运行redis镜像的实例名称

    4、进入Image的小环境

    docker exec -it COXTAINER ID bash
    redis-cli

    hsiehchou@DESKTOP-KJDN870 MINGW64 /d/Docker Toolbox
    $ docker run --name myredis12 -p 6379:6379 -d redis redis-server
    9e37ae7338d05b83f666a95fe3677aa85b1481c8fa519a79e9008a5a5e9e909d

    hsiehchou@DESKTOP-KJDN870 MINGW64 /d/Docker Toolbox
    $ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    9e37ae7338d0 redis “docker-entrypoint.s” 5 seconds ago Up 6 seconds 0.0.0.0:6379->6379/tcp myredis12

    hsiehchou@DESKTOP-KJDN870 MINGW64 /d/Docker Toolbox
    $ docker exec -it 9e37ae7338d0 bash
    root@9e37ae7338d0:/data# redis-cli
    127.0.0.1:6379>

  • 相关阅读:
    java网络编程(UDP详解)
    java网络编程(TCP详解)
    java-单例详解
    java-接口和抽象类的联系和区别。
    java-集合小结
    Java异常(一)Java异常简介及其框架
    JAVA的接口
    深入理解Java的接口和抽象类
    linux动态库编译和使用详细剖析
    C基础 time.h 简单思路扩展
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10767850.html
Copyright © 2011-2022 走看看