zoukankan      html  css  js  c++  java
  • linux-----docker

    docker简介

     
     
     
    Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
    
    Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。 

    docker的三大概念

      镜像:我们可以理解为系统盘的dvd镜像,轻量级的镜像文件

      仓库:存储docker镜像

      容器:是基于镜像运行的,容器实例

    docker的安装

    1.安装docker

      yum install docker -y 

    2.启动docker

      systemctl  start docker

    3.docker加速器下载,以及配置 

      curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io   会生成一个docker配置文件,路径是/etc/docker/daemon.json

    4.配置了docker加速器,需要重启docker

      systemctl restart docker

    docker基本命令

      增:

        docker pull 镜像名字   #下载镜像

        docker run 镜像名字  #运行镜像,产生容易实例

        docker run -it 镜像名字 /bin/bash  参数解释: -i 交互式的命令操作 - t 开启一个终端提供访问  /bin/bash  指定shell解释器

        docker run -it --rm 94e /bin/bash      --rm  运行容器,退出后,删除容器记录

        docker run -d centos /bin/sh -c "while true;do echo 好嗨哦,感觉人生到达了巅峰; sleep 1;done"

          -d 后台运行 

          centos  指定镜像文件           /bin/sh    指定shell解释器           -C 指定一个shell语句

      删:

       docker rm 容器id

       docker rm `docker ps -aq`   批量删除容器记录

       docker rm -f `docker ps -aq` 强制删除所有的容器记录

       docker rmi 镜像id   删除镜像记录

       docker  rmi `docker images -aq` 批量删除镜像文件

      改:

       docker tag 镜像id 新的名字   修改docker镜像名,tag标记名

       docker run  --name  myredis 94e  /bin/bash

      查:

       docker image ls   查看docker镜像的命令

       docker  images   #等于上述命令,产看镜像

       docker container ls   查看正在运行的容器进程

       docker ps       只能查看正在运行的容器

       docker ps -a  查看所有的容器记录

       docker search centos   查看docker镜像记录

       docker logs  容器id  查看容器空间内的日志

       docker logs -f 不间断的打印容器内日志信息

       docker exec -it 容器id /bin/bash   #进入正在运行的容器空间

      启动和停止

       docker stop 容器id

       docker start 容器id

    ######注意:docker容器必须有后台程序在运行,否则就退出

    学习Dockerfile

    #制作base image 基础镜像,尽量使用官方的image作为base image
    
    FROM scratch
    
    #使用base image
    
    FROM centos 
    
    FROM ubuntu:14.04 #带有tag的base image
    
    #指定一个基础镜像
    LABEL version=“1.0” #容器元信息,帮助信息,Metadata,类似于代码注释
    
    LABEL maintainer=“yc_uuu@163.com"
     
    
    #对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
    
    RUN yum update && yum install -y vim 
    
        Python-dev #反斜线换行
    
    RUN /bin/bash -c "source $HOME/.bashrc;echo $HOME”
    
     
    
    #run指令是一个万能指令 
     
    
    WORKDIR /root #相当于linux的cd命令,改变目录,尽量使用绝对路径!!!不要用RUN cd
    
    WORKDIR /test #如果没有就自动创建
    
    WORKDIR demo #再进入demo文件夹
    #ADD是添加文件,从物理机本地,添加到容器空间内 
    ADD and COPY 
    
    ADD hello /  #把本地文件添加到镜像中,吧本地的hello可执行文件拷贝到镜像的/目录
    
    ADD test.tar.gz   /tmp    #添加到根目录并解压
    
     
    
     
    
    #并且ADD指令还有 解压缩的功能 
    
    
     打包一个程序和Dockerfile
    
    1.准备一个flask代码文件
    
    [root@master mydocker]# cat s17-flask.py 
    
     
    
    #coding:utf8
    
    from flask import Flask
    
    app=Flask(__name__)
    
    @app.route('/')
    
    def hello():
    
        return " hello,flask"
    
    if __name__=="__main__":
    
        app.run(host='0.0.0.0',port=8080)
         
    
    2.准备构建dockerfile,用于生成镜像
    
     
    
    FROM centos     #指定一个基础镜像 
    
    COPY CentOS-Base.repo /etc/yum.repos.d/  #拷贝本地的yum仓库,到容器空间内               
    
    COPY epel.repo /etc/yum.repos.d/    #  
    
    RUN yum clean all
    
    RUN yum install python-setuptools -y
    
    RUN easy_install flask
    
    COPY s17-flask.py /opt/
    
    WORKDIR /opt       
    
    EXPOSE 8080     #暴露容器的8080端口,供给物理机去映射访问
    
    CMD ["python","s17-flask.py"]       #cmd代表执行命令  
        
    
    3.准备 CentOS-Base.repo  epel.repo  
    
     
    
    4.确保 dockerfiel,flask代码,yum仓库文件,在同一层目录
    
     
    
    5.构建镜像
    
    docker build .  
    
     
    
    6.检查docker镜像文件,是否有自己创建的镜像
    
     
    
    7.修改镜像的名字
    
     
    
    docket tag 镜像名  新的镜像名
    
     
    
    8.运行镜像,生成容器实例
    
    docker run -p 8080:8080  -d  04b
    
     
    
    9.检查docker端口映射状态
    
    docker port 容器id
    
     
    
    10.访问windows,找到容器内的应用 
  • 相关阅读:
    3号团队-团队任务4:每日例会(2018-11-28)
    10号团队-团队任务5:项目总结
    课后作业4-个人总结
    团队任务4-每日例会(2018-12-6)
    团队任务4-每日例会(2018-12-5)
    团队任务4-每日例会(2018-12-4)
    团队任务4-每日例会(2018-12-3)
    团队任务4:每日例会(2018-11-30)
    团队任务4:每日例会(2018-11-28)
    团队任务4:每日例会(2018-11-29)
  • 原文地址:https://www.cnblogs.com/pythonz/p/10933410.html
Copyright © 2011-2022 走看看