zoukankan      html  css  js  c++  java
  • docker命令、简单创建镜像、dockerfile实战、Dockerfile语法、镜像分层、Volume介绍

    docker的常用命令:

    docker pull 获取image
    docker build 创建image
    docker images 列出image
    docker run 运行container
    docker stop 停止container
    docker rmi 删除image
    docker ps 列出container
    docker ps -a 列出container的历史记录
    docker rm 【"idlist"】删除contain多个历史记录
    docker run -p 8080:80 -d daocolud.io/nginx 运行nginx
    docker cp index.html ["id"]://usr/share/nginx/html 暂时修改nginx首页
    docker commit -m 'fun' ["id"] ['name'] 保存修改的image

    创建简单的docker镜像 Dockerfile

    1.创建Dockerfiler文件

     2.编辑文件,vim Dockerfile

    输入:

    FROM alpine:latest
    MAINTAINER yrg
    CMD echo "Hello Docker"

     3.创建镜像

    docker build -t hello_docker .

    -t:给镜像一个hello_docker的标签,' '是一个路径名,把底下所有的内容都送给docker engine 让他产生一个image

     4.查看image

     5.运行image

     

     Dockerfile实战(创建较复杂的image)

     

    1.创建文件夹,创建Dockerfile文件

    2.编辑文件,在其中添加如下:

    FROM ubuntu    #名字
    MAINTAINER yrg            #作者    
    RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list  #加速镜像
    RUN apt-get update   #更新Ubuntu的库
    RUN apt-get install -y nginx  #安装nginx的命令
    COPY index.html /var/www/html  #拷贝准备的index.html到容器里(不同Ubuntu是不一样的)
    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]  #容器的入点,将nginx作为前台来执行

    EXPOSE 80  #端口

    3.创建镜像

    docker build -t yrg/hello-nginx .

     4.运行镜像

    docker run -p 80:80 -d yrg/hello-nginx

    5.curl http://localhost进行查看

    Dockerfile语法

     镜像分层

     Volumo

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

    操作:1.docker run -d --name nginx -v /usr/share/nginx/html nginx

     2.docker inspect nginx 查看详情

     3.查看文件

    ls /var/lib/docker/volumes/76db0f001f7675c41f511400dd09be16fe2e785f114c7f1a1e0f860c3b36f4fd/_data

     

     4.可以修改index文件进入容器中下查看

    docker  exec -it  /bin/bash

    cd /usr/share/nginx/html

    cat index.html

    方式二挂载:

    docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx

    三:

    docker create -v $PWD/data:/var/mydata --name data_container ubuntu

     进入Ubuntu

    docker run -it --volumes-from data_container ubuntu /bin/bash

    输入mount

     进入/var/mydata,输入ls,可以看到为空

     创建一个文本,whatever.txt,然后退出

     进入data,输入ls,可以看的当前目录下也创建了一个whatever.txt的文本

     说明挂载成功

    Registry(镜像仓库)

     

     # docker search whalesay   :从仓库中搜索镜像

    # docker pull whalesay    :从仓库中下载镜像

    # docker push myname/whalesay  :将自己做的镜像上传到仓库

    国内的一些仓库:

    daocloud

    时速云

    aliyun

    实战:

    docker search whalesay

     下载镜像

    docker pull docker/whalesay

    查看镜像:

     运行镜像

    docker run docker/whalesay cowsay dockerisfun 

    docker tag docker/whalesay  godyrg/whalesay       :产生一个新的tag的镜像

     

     上传镜像:

    进行登录

    docker login

    登录成功后 ,上传镜像

    docker push godyrg/whalesay

    进入 https://hub.docker.com/ ,可以看到上传的镜像

     docker-compose(多容器)

    Mac/windows :自带

    linux:需要安装:

    curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


    chmod +x /usr/local/bin/docker-compose  :给文件夹赋予权限

    输入

    docker-compose --version

    如果显示版本号,安装成功


    实战:
    创建 ghost,nginx,data文件夹
    在ghost文件夹中创建Dockerfile

     编辑Dockerfile文件

    FROM ghost
    COPY ./config.js /var/lib/ghost/config.js
    EXPOSE 2368
    CMD ["npm","start","--production"]

     

    接着

    var path = require('path'),
    config;
    config={
    prodution: {
    url: 'http://mytestblog.com',
    mail: {},
    database: {
    client: 'mysql,
    connection: {
    host : 'db',
    user : 'ghost',
    password : 'ghost',
    database : 'ghost',
    charset : 'utf8'
    },
    debug:false
    },
    path:{
    contentPath:path.join(process.env.GHOST_CONTENT,'/')
    },
    server: {
    host: '0.0.0.0',
    port: '2368'
    }
    }
    } ;
    moudle.exports = config;

     

     保存退出

    进入刚刚创建的nginx目录

     创建Dockerfile文件,编辑

    FROM nginx
    COPY nginx.conf /etc/nginx/nginx.conf
    EXPOSE 80

     保存退出

    创建nginx.conf配置文件

    worker processes 4;
    events {worker_connections 1024}
    http {
    server{
    listen 80;
    loction / {
    proxy_pass http://ghost-app:2368;
    }
    }
    }

    最后准备docker-compose.yaml文件

    version: '2'

    networks:
    ghost:

    services:
    ghost-app:
    build: ghost
    networks:
    - ghost
    depends_on:
    - db
    ports:
    - "2368:2368"

    nginx:
    build: nginx
    networks:
    - ghost
    depends_on:
    - ghost-app
    ports:
    - "80:80"
    db:
    image: "mysql :5.7.15"
    networks:
    - ghost
    enviroment:
    MYSQL_ROOT_PASSWORD: mysqlroot
    MYSQL_USER: ghost
    MSYQL_PASSWORD: ghost
    volumes:
    - $PWD/data:/var/lib/mysql
    ports:
    - "3306:3306"

     docker-compose  up -d 进行挂起(无镜像,系统帮忙做一个镜像)

    docker-compose stop 停止(出现错误的不停止)

    docker-compose rm   停止(错误的也停止)

    
    

     docker-compose build (自己构建一个镜像)



  • 相关阅读:
    ASP.NET Web API 控制器执行过程(一)
    ASP.NET Web API 控制器创建过程(二)
    ASP.NET Web API 控制器创建过程(一)
    ASP.NET Web API WebHost宿主环境中管道、路由
    ASP.NET Web API Selfhost宿主环境中管道、路由
    ASP.NET Web API 管道模型
    ASP.NET Web API 路由对象介绍
    ASP.NET Web API 开篇示例介绍
    ASP.NET MVC 视图(五)
    ASP.NET MVC 视图(四)
  • 原文地址:https://www.cnblogs.com/godyrg/p/11910460.html
Copyright © 2011-2022 走看看