zoukankan      html  css  js  c++  java
  • 007/Docker(一)

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

    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

    Gitbook教程从入门到实践

    Docker菜鸟教程

    阮一峰日志:Docker入门教程

    阮一峰日志:Docker微服务教程

    Docker官方文档

    Docker入门(Mooc)

    第一个Docker化的Java应用(Mooc)

    Docker环境下的前后端分离项目部署与运维(Mooc)

    Docker+k8s微服务容器化实践(Mooc)

    系统学习Docker,践行DevOps理念(Mooc)

    openstack最新技术解析(Mooc)

    一。Mooc--Docker基础

    1。Docker架构如下所示:

    2。Docker常用命令

    1.查看有哪些镜像
    $ docker images
    
    2.运行docker
    $ docker run ubuntu echo hello docker //ubuntu为images的名字
    //上述做的事情,用ubuntu这个image,在这里面运行了echo hello docker这一命令.上述输出为hello docker

    3.运行nginx服务器
    $ docker run nginx  //运行nginx这个image
    //说明:docker在运行容器之前先看本地是否有所需要容器运行的image,如果没有则从远端registry下载

    4。查看本地有哪些image
    $ docker images
    5.执行命令
    $ docker run -p 8080:80 -d daocloud.io/nginx  //返回docker的container的ID
    //说明:p是做端口映射,将nginx的80端口映射到本地8080端口; -d是允许这个程序直接返回,即把这个container做为守护进程来执行

    6.查看所有当前正在运行的docker的container
    $ docker ps
    //说明:可查看运行的docker的container以及端口之间的映射关系

     说明在本地8080端口开启了一个nginx服务,地址栏访问验证:localhost:8080

    上述以在本地开启了一个nginx服务,希望这个页面呈现docker相关信息。实现步骤:

    【1】。创建一个index.html文件,并加入内容

    【2】。ubuntu安装nginx

    7。安装nginx
    $ sudo apt-get install nginx
    //nginx目录位置:/usr/share/nginx
    8.启动nginx
    /etc/init.d/nginx start

    【3】。将index.html文件拷备到容器中

    //9.拷备index.html文件到容器中
    docker cp index.html 容器ID://usr/share/nginx/html
    
    //容器ID查询方式:正在运行的容器
    docker ps
    10.停止docker
    $ docker stop 容器ID
    //容器ID通过docker ps查询

    浏览器访问:localhost:8080

    11.查看正在运行的容器
    $ docker ps
    
    12.查看所有容器
    $ docker ps -a
    //12.停止某个运行的的容器
    
    $ docker ps
    $ docker stop 容器ID
    
    //13。移除某个容器
    
    $ docker ps -a
    $ docker rm 容器ID1 容器ID2

    常用命令小结

    第3章:Dockerfile介绍

    3。dockerfile(地址

    【1】。通过编写简单的文件自创docker镜像

    上节应用docker commit创建了一个新的image

    1.查看运行的容器
    $ docker ps
    
    2.创建一个新的镜像image
    $ docker commit -m  'fun' 容器ID 镜像名字

    第一个dockerfile

    上述成功用dockerfile形式构建了自己的image.可以image中运行容器执行命令行。

    【2】dockerfile实战

    【1】基础镜像 【2】作者

    【3】运行命令:

    run apt-get upate //更新ubuntu的库

    run apt-get install -y nginx //安装nginx,-y不要询问

    COPY //复制文件

    ENTRYPOINT //入口,目的将nginx在前台执行而不是做为守护进程执行.[ , ,] 会给拆分成一条命令

    EXPOSE //暴露端口

    1.创建一个目录
    $ mkdir dockerfile2
    
    2.创建文件(注意:该Dockerfile文件名不能为其他,只能为Dockerfile)
    $ touch Dockerfile
    
    $ vi Dockerfile

    3。创建index.html
    $ touch index.html
    
    //编辑文件
    vi index.html
    
    //向其中添加内容today is very good
    4.构建镜像
    $ docker build -t xbf/hello-nginx .
    
    //构建完成
    
    5.运行镜像 
    $ docker run -d -p 8089:80 xbf/hello-nginx 
    //将80端口映射到本地8089
    6.查看运行的镜像
    $ docker ps
    
    7.查看返回结果
    $ curl http://localhost:8089

    Dockerfile语法

    镜像是分层被存储

    下述为一个已经存在的image镜像,下述三层为只读的。当image被运行为容器,则会产生新的一层,最上层为容器层,可读可写。

    为什么要分层:存储可以共享,存储压力小。

    Volumn:提供独立于容器之外的持久化存储

    可提供容器与容器之间共享的数据

    第4章:存储

    Volumn操作:

    1。运行一个nginx容器,通过-v挂载一个卷

    2。本地一个目录,挂载到容器数据卷中

    第5章:镜像仓库

    registry:镜像仓库(saas的服务)

    术语:

    【1】host:宿主机(正在使用的这台电脑)

    【2】镜像:可多远端拉取的或本地程序构建的一些可重复使用的软件打包

    【3】容器:是镜像运行的实际

    【4】仓库:很多镜像注册的仓库

    【5】守护程序:docker守护进程用来和registry共享,用来接受用户的命令

    【6】客户端:用来给守护程序输送命令以及进行操作

    国内一些仓库:daocloud /时速云 /aliyun

    registry实战

    第6章:多容器app

    上述讲述的均为单容器app应用,本意为利用docker-compose工具拉起一个多容器app应用

    1.docker-compose

    【1】docker-compose安装

            compose为独立软件,所以需要单独安装。

    1.安装docker-compose
    $curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    
    2.查看docker-compose
    $ ls -l /usr/local/bin/docker-compose
    
    3.查看docker-compose版本
    $ docker-compose --version

    4.设置所有用户可用
    $ chmod a+x /usr/local/bin/docker-compose

    【2】docker-compose实战(docker-compose三层架构)

    nginx:接入层 /ghost app:业务层 / mysql:数据层

    【3】docker-compose.yml常用命令

    docker-compose命令

    小结

      

  • 相关阅读:
    pxeconfig 4.2.0 发布,PXE 首要启动设备
    Nutz 1.b.48 发布,Java 应用框架
    Exponent CMS 2.2.0 Beta3 发布
    持续交付加速了创新的步伐
    Fork CMS 3.5.1 发布,PHP 的 CMS 系统
    Org Mode 8.0 发布,TODO 管理工具
    Apache OpenNLP 1.5.3 发布
    结巴分词 0.27 发布,Python 中文分词组件
    Linux 内核 3.9 开发统计
    红帽发布开源的 OpenStack RDO
  • 原文地址:https://www.cnblogs.com/kaixinyufeng/p/9389348.html
Copyright © 2011-2022 走看看