zoukankan      html  css  js  c++  java
  • docker的初步使用

    导读

    本文不追求严谨的措辞,仅为没有用过docker的用户提供快速的概览

    docker是一个轻量的虚拟机

    虚拟机 :

    从网上下载了一个软件,不确定是否包含病毒;或者只是临时用一下,有点洁癖不希望有这个软件的残留。

    此时把这个软件放到虚拟机的系统里运行,用完了可能就连这个虚拟系统一起删除了。

    虚拟机是完全模拟了系统,或许你只是想装个mysql 。

    但是为了支撑虚拟系统的运行,维持系统运行的却要许多额外进程。

    虚拟机里面的系统是个完整的系统

    docker的轻量在于你只需要运行你的mysql就好,其他的东西会调用宿主机的功能。

    docker的系统算是个半成品,他只运行你要运行的服务。

    案例

    通过使用docker安装一个mysql数据库

    1. 在linux中安装docker

    Docker的版本在1.13.x 叫docker

    3月2日,Docker 官方发布了一篇 blog ,宣布企业版到来。版本也从1.13.x一跃到17.03。
    此后docker 有两种类型 docker CE(社区版) docker EE(企业版)

    此处提供docker ce的安装

    1.1 配置ubuntu仓库

    1. 设置apt支持https

    sudo apt-get install 
    apt-transport-https ca-certificates 
    curl software-properties-common

    2. 下载验证码

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    3. 指纹验证 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

    sudo apt-key fingerprint 0EBFCD88

    4. 添加docker官方仓库

    sudo add-apt-repository 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
    $(lsb_release -cs) 
    stable"

    1.2 安装docker

    #更新apt仓库缓存
    sudo apt-get update
    
    #安装docker
    sudo apt-get install docker-ce
    
    #测试Docker的hello world
    sudo docker run hello-world
    


    2. 使用docker安装mysql数据库

    环境:系统ubuntu16.10 主机ip:192.168.1.10 docker17

    # 2.1 创建mysql保存数据的文件夹

    su root
    mkdir /my/own/datadir

    # 2.2 下载镜像(静态文件)

    docker pull mysql:5.6.36

    # 2.3 创建并启动容器

    docker run --name mysql_test1 
      -p 4001:3306 
      -v /my/own/datadir:/var/lib/mysql 
      -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.6.36

    此时可以通过192.168.1.10:4001访问mysql数据库了

    ------------其他命令----------------

    # 启动容器

    docker stop mysql_test1

    # 启动容器

    docker start mysql_test1


    3. 运行参数解释

    参数解释

    docker pull 表示从镜像仓库将某个镜像下载到本地

    --name mysql_test1

    起个名, 方便操作

    -v /my/own/datadir:/var/lib/mysql

    文件夹/my/own/datadir是宿主机的文件,用于保存mysql的数据文件

    -v /my/custom:/etc/mysql/conf.d

    (这个参数如果需要可以使用) 自定义mysql的配置文件

    -e MYSQL_ROOT_PASSWORD=123

    动态变量mysql的密码

    -p 4001:3306

    暴露3306端口到宿主机的4001 用户通过宿主机的4001访问myql

    -d mysql:5.6.36

    使用之前下载的镜像 -d表示在后台运行

    其他命令

    # 删除一个停止的容器
    docker rm mysql_test1
    
    # 删除一个本地的镜像
    docker rmi mysql:5.6.36
    


    4. 案例总结

    镜像: 对于mysql:5.6.36叫做镜像 可以理解为压缩包

    容器: 称mysql_test1为一个容器 可以理解为解压后的运行文件

    仓库 :默认会从docker官方拉取镜像,国内也有许多提供仓库服务的公司

    安装好之后只会注意三个东西 :

    • 数据库文件的保存位置(文件)
    • ip + 端口 用于连接 (网络)
    • 用户名密码 (其实还是保存在文件中)

    运维人员

    开发者

    一般都使用相同的镜像,

    启动时可以按需要传入动态配置参数

    通过网络访问

    如 192.168.1.10:3306

    通过-v参数将数据保存在docker的宿主机中 而容器可以直接删除 。

    迁移数据方便

    开发者不需要关心Mysql的运行环境

    装在docker中还是linux或者windows中

    5. 其他

    docker的用途

    1. 可以使开发环境和运行环境保持一致
    2. 可以快速使用来自网友分享的各种开发环境
    3. 自动化测试和持续集成、发布

    需要继续了解的东西

    1. 不同容器之间如何通信
    2. 通过Dockerfile创建镜像
    3. 通过容器编排使多个软件成为一组服务
  • 相关阅读:
    PhpStorm Swoole 和 CI 代码自动补全
    python正则表达式匹配多行
    ES6 Template Strings(转)
    IntelliJ隐藏特定后缀文件
    网络游戏术语(转)
    mac查看当前调用tcp的进程并关闭指定进程
    袭击Mercurial SCM(HG)
    T 泛型转换
    UiAutomator源代码分析之UiAutomatorBridge框架
    ASP.NET MVC 入门8、ModelState与数据验证
  • 原文地址:https://www.cnblogs.com/fluffy/p/6946724.html
Copyright © 2011-2022 走看看