zoukankan      html  css  js  c++  java
  • docker基础

     

    Docker 安装

    https://blog.csdn.net/u014069688/article/details/100532774   针对CENTOS7

    学用命令

    https://www.docker.org.cn/dockerppt/106.html

    centos7 安装方法  安装文档

    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

    打开连接  得到自己的专有镜像加速服务器地址及安装方法

    常用命令

    Docker version

    Docker info

    Docker --help

    Docker images  查看本地仓库

    Docker 仓库源地址  要不然安装特别不顺利

    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    完成之后还要进行一个更新YUM软件包索引  因为已经更改了REPO

     

    Docker search tomcat   DOCKER HUB 搜索镜像   查看信息

    Docker rmi 删除镜像  删除多个  删除全部$(docker images -qa)

    运行容器

     

    Docker run -it centos

    Docker run -it --name centos1 centos

    Docker ps  列出正在运行的容器

    Docker ps -a     列出所有的容器

    退出当前容器exit 关闭并退出    ctrl P q  不停止退出

    Docker start     docker restart    docker stop慢慢停    docker kill   强关

    删除已停止的容器

    Docker rm 如果是正在运行的加  -f

    $(docker ps -lq)   就是取他下面的值

    Docker rm 删除容器

    Docker run -d 容器    如果没 有任务就自动退了   机制问题

    解决办法

    docker run -d centos /bin/sh -c "while true;do echo hello;sleep 2;done"

    Docker logs 容器ID  可以查看到刚才打印的HELLO ZZYY

    Docker top 容器ID    查看容器进程

    Docker inspect  查看容器细节

    Docker attach 容器ID   进入到容器

    Docker exec 直接在外面执行容器内的命令

    docker exec -t $(docker ps -lq) ls -l /tmp

        docker exec -t $(docker ps -lq) ls -l /tmp

    docker cp a3c97d761e26:/tmp/a.txt /root/     复制文件到宿主机

    Docker commit -m=”提交的描述信息” -a=”作者” 容器ID要创建的目标镜像名:[标签名]

    Docker run -it -v /宿主机绝对路径目录:/容器内目录  镜像名

    Dockerfile

    新建一个DOCKERFILE文件

    FROM centos

    VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

    CMD echo "finished, success1"

    CMD /bin/bash

     

    Docker build -f /mydocker/dockerfile -t xiaoxu/centos    -f 要用以下文件   -t类似命名空间

     

    继承卷  就是以一个容器为父容器  再开的容器继承这个容器的卷信息

    docker run -it --name xiaoxu22 --volumes-from xiaoxu xiaoxu/centos

    Dockerfile 文件要点

    步骤1手动编写 一个DOCKERFILE文件,当然,必须要符合 FILE 的规范

    步骤2有这个文件 后,直接 DOCKER BUILD命令执行,获得一个自定义的镜像

    步骤3 run

    基础知识

    1:每条保留字指令都必须是大写,而且必须 跟一个参数

    2:指令按照从上到下,顺序执行

    3#表示注释

    4:每条指令都 会创建一个新的镜像层,并对镜像提交

    流程

    1  docker 从基础镜像运行一个容器

    2  执行一条指令并对容器作出修改

    3 执行类似DOCKER COMMIT的操作提交一个新的镜像层

    4  DOCKER再基于刚提交的镜像运行一个新容器

    5  执行DOCKERFILE中的下一条指令直到所有指令都执行完成

    保留字的作用

    FROM 基础镜像,当前镜像是基于哪个镜像

    MAINTAINER 镜像维护都 的名字和邮箱

    RUN   容器创建时需要执行的命令

    EXPOSE 当前容器对外暴露出的端口

    WORKDIR 指定一个落脚点

    ENV 设置环境变量

    ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压 TAR压缩包

    COPY 只是拷贝

    VOLUME 容器数据卷,用于数据保存和持久化工作

    CMD 指定一个容器启动时要运行的命令,DOCKERFILE中可以有多个CMD 指令,但只有最后一个生效,CMD会被DOCKER RUN之后的参数替

    ENTRYPOINT CMD基本一样,有点倾向于追加

    ONBUILD 可以在被继承的时候触发某些操作

    Dockerfile举例

    FROM CENTOS CENTOS是本地镜像名

    MAINTAINER ZZZYYY<275943182@QQ.COM>   作者信息

    ENV MYPATH /usr/local 设置环境变量

    WORKDIR $MYPATH 设置工作目录 ,落脚点

    RUN yum -y install vim VIM安装进镜像里

    RUN yum -y install net-tools IFCONFIG安装进镜像里

    EXPOSE 80 对外暴露80端口

    CMD echo $MYPATH 进入镜像先执行显示MYPATH变量

    CMD echo “success”

    CMD /bin/bash 运行指定程序一般只有最后一个CMD被执行   

    Docker history mycentos 查看历史

    docker run tomcat:8.5.32 ls -l   这样TOMCAT就不会执行了,因为在最后用LS -L覆盖了

    举例

    FROM centos

    ENTRYPOINT ["curl","http://www.baidu.com"]

    如果用CMD不能给CURL加参数 但是我们用了ENTRYPOINT就可以加-I的参数

    Docker push 到阿里云

    需要先COMMIT成本地的一个镜像

    Docker commit -a zzyy -m “new mycentos 1.4 from 1.3” [id] mycentos:1.4.1

    然后在自己的阿里去里面建立一个仓库

    https://Cr.console.aliyun.com

    $ sudo docker login --username=xpf22@126.com registry.cn-hangzhou.aliyuncs.com

    $ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

    $ sudo docker push registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

    doker 安装mysql

    无法编辑文件DOCKER  可以换源装VIM

    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
    cat <<EOF >/etc/apt/sources.list
    deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
    EOF
    
    apt update
    
    apt install vim
    
    mv /etc/apt/sources.list.bak /etc/apt/sources.list
    

      mysql出现中文乱码解决方案

  • 相关阅读:
    Java学习之Jdk配置
    Socket网络模型之Select模型
    c#之初见反射
    c++读取文件夹中的文件
    C#泛型的初步理解
    C#接口简单介绍
    c#类,属性,方法和对象基本介绍
    事件的基本认识
    委托的基本认识
    在Xshell中使用rz命令上传文件出现乱码且文件无法删除的解决办法
  • 原文地址:https://www.cnblogs.com/xupanfeng/p/13977480.html
Copyright © 2011-2022 走看看