• docker_使用


    系统环境准备

    docker最低支持centos7且在64位平台上,内核版本在3.10以上
    [root@msi ~ 10:48:11]#uname -r
    3.10.0-693.el7.x86_64
    

    须知

    Docker 是一个开源的商业产品,
    有两个版本:
      社区版(Community Edition,缩写为 CE)
      企业版(Enterprise Edition,缩写为 EE)企业版包含了一些收费服务
    

    Centos安装docker

    方式一
    请遵循官方安装方式!!!有点卡
    https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-after-using-the-convenience-script

    1.卸载旧版本
    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine
    
    2.设置存储库
    sudo yum install -y yum-utils 
      device-mapper-persistent-data 
      lvm2
    
    sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
    3.安装docker社区版
    sudo yum install docker-ce
    4.启动关闭docker
    systemctl start docker
    

    方式二

    #可以配置最新版本的,docker官方的软件仓库,也可以使用阿里的epel仓库下载
    yum install docker-server docker -y
    #通过yum安装的docker,直接使用systemctl start docker 启动 
    #检查docker版本,是否安装成功
    
    docker version  
    #docker加速器
    Docker镜像加速器
    #执行命令 
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    

    docker pull  centos  #默认去dockerhub下载一个centos镜像文件 
    docker pull  hello-world  #下载镜像 
    docker run  镜像id  #运行镜像,生成容器,并且检测镜像是否存在,不存在自动docker Pull
    docker  run  -it  centos  /bin/bash  
    	#-i 是交互式的操作
    	#  -t  是开启一个终端
    
    #下载一个ubuntu镜像,且进入这个ubuntu容器空间内
    docker  run -it  ubuntu  /bin/bash  
    
    	
    #进入centos容器内,并且修改容器内的信息,然后提交为新的镜像 
    		docker run  -it  centos  /bin/bash   
    	#然后 下载一个vim,退出这个容器
    		exit
    	#提交这个容器记录,为新的镜像
    		docker commit  容器id    新的镜像名  
    
    #导出本地的docker镜像
    docker save  容器id   >  镜像压缩文件
    #导入docker镜像文件
    docker load <   镜像压缩文件 
    #运行一个活着的容器
    docker run -d centos /bin/sh -c "while true;do echo 你看这个灯,它又大又亮; sleep 1;done"
    	# -d 后台运行 
    	# /bin/sh  Linux的shell解释器
    	#  -c  指定一段shell脚本 
    #给运行的容器添加一个名字 
    [root@s24_linux ~]# docker run --name s24wuyifan  -d centos /bin/sh -c "while true;do echo 你看这个灯,它又大又亮; sleep 1;done"
    f80915521b822801b2186cd66e3a69011beda4cfcec60076409c62e9d03ddf4f
    
    
    #运行一个web程序,在容器中 ,要对外进行端口暴露
    docker run -d -p 8090:5000 training/webapp python app.py
    	# -d 后台运行  
    	#  -p  指定端口映射   宿主机的 9000映射到容器内的5000 (宿主机的端口你可以自由定义,容器的端口根据代码决定)
    	# -P  随机端口映射 ,宿主机会随机生成一个端口,映射到容器的5000  
    	
    #暂停一个正在运行的容器记录
    docker stop 容器id  
    	
    #再次运行一个容器
    docker start 容器id  	
    
    #修改docker镜像的名字
    docker tag 镜像id    新的镜像名  
    

    docker容器挂掉后,数据会丢吗
    不会,docker容器挂掉后,可以通过docker ps -a 看到容器记录,不会释放,容器记录删掉后,数据就释放了

    删除镜像

    docker   rmi  镜像id前三位即可 #删除镜像,必须清除所有的容器记录依赖 
    docker rm   容器id  #删除容器记录,必须是挂掉的记录才能删除 
    docker  rm  `docker ps -aq`  #批量删除容器记录  
    docker rmi  `docker images -aq`  #批量删除镜像记录 
    

    查镜像

    
    docker search  centos  #搜索centos相关的镜像 
    docker  image ls  #查看机器上所有的镜像
    docker images  #同上 意思一样
    docker ps  #查看正在运行的docker容器(必须有一个进程在容器中,后台运行,这个容器才不会挂掉)
    docker ps -a  #查看所有运行过的容器记录(挂掉的,和正在运行的记录)
    
    docker  logs  容器id/容器名   #查看容器内所有的日志 
    docker logs -f  容器id  #实时刷新容器内的日志 
    
    
    #如何进入一个活着的容器 
    docker  exec  -it  容器id  /bin/bash   
    
    #查看docker的端口转发情况
    docker port 容器id  
    
    
    #dockerfile是全大写的
    
    #dockerfile的学习 
    FROM scratch #制作base image 基础镜像,尽量使用官方的image作为base image
    FROM centos #使用base image
    FROM ubuntu:14.04 #带有tag的base image
    #FROM指令,是指定你的docker镜像以哪一个操作系统为基础去运行
    # FROM  ubuntu  
    #FROM  centos:7  
    
    
    
    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指令是一个完成指令,你写什么就运行什么
    
    
    道,可道,非常道;名,可名,非常名。
  • 相关阅读:
    JavaScript基础学习(三)—数组
    JavaScript基础学习(二)—JavaScript基本概念
    JavaScript基础学习(一)—JavaScript简介
    HTML基础学习(二)—CSS
    HTML基础学习(一)—HTML
    JDBC基础学习(六)—数据库连接池
    JDBC基础学习(五)—批处理插入数据
    js_页面关闭beforeunload事件
    css3_box-shadow使用记录
    jq_$.extend和$.fn.extend插件开发和方法的封装
  • 原文地址:https://www.cnblogs.com/SkyRabbit/p/14421367.html
Copyright © 2020-2023  润新知