栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker入门精简版

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker入门精简版

Docker基础:https://blog.csdn.net/huangjhai/article/details/118854733
目录:
    1.镜像
    2.容器
    3.数据持久化
    4.网络
    5.容器脚本
    6.项目脚本


第一关:镜像和容器
    名词:
        镜像:服务样品
        仓库:存放镜像的远程服务器
        容器:实际的服务应用

    帮助:https://blog.csdn.net/qq_45637155/article/details/109901965

    镜像常用:
        查看:docker images
        搜索:docker search
        下载:docker pull
        删除:docker rmi
    容器常用:
        生成并运行:docker run 镜像名 --name="自定义名" [如果容器什么都不做,容易被自动停掉]
        列出容器:docker ps -a
        删除容器:docker rm 容器id
        操作容器:docker start/restart/stop/kill 容器id
        跳出:Ctrl + p + q
        退出:exit
    容器交互:
        进入:docker exec -it 容器id /bin/bash
        进入:docker attach 容器id
        文件贴出:docker cp 容器id:文件路径 目标路径
    docker相关:
        运行状态:docker stats
        容器信息:docker inspect 容器id
        挂载信息:docker volume ls

    联合文件系统:镜像文件分层处理,底层共用。
    自制镜像:底层都是共用的,只读的。自定义的部分都是在顶端一层累加的。
        提交镜像:docker commit -a="" -m="" 容器id 镜像名:版本号
            [将一个修改过的docker容器做成images,存放在本地]
第二关:数据与脚本
    容器数据卷:
        匿名挂载:docker run -v 主机目录:容器目录
            docker run -d -v /html:/usr/share/nginx/html --name nginx01 -p 3335:80 nginx
        具名挂载[推荐]:docker run -v 卷名:容器目录 [区别:是不是/开头]
            卷名地址:/var/lib/docker/volumes/卷名
        跟随别人的卷:相互共享-v信息,并无关系
            --volumes-from 容器名
    DockerFile:构建docker镜像的脚本
        步骤:
            1.编写脚本文件
                dockerfile{
                    FROM 基础镜像名
                    MAINTAINER author

                    #自动解压放在某处
                    ADD xxx.tar.gz /path
                    COPY xxx.jar /path/xxx.jar

                    ENV MYPATH /usr/local
                    WORKDIR $MYPATH
                    VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]

                    RUN yum -y install vim
                    RUN yum -y install net-tools

                    EXPOSE 80 443

                    CMD ["--server.port=8080"]
                    ENTRYPOINT ["java","-jar","/app.jar"]
                }
                照抄脚本:docker history 镜像id
                CMD与ENTRYPOINT:
                    都可以指定shell或exec函数调用的方式执行命令;
                    当存在多个CMD指令或ENTRYPOINT指令时,只有最后一个生效;
                    差异1:CMD指令指定的容器启动时命令可以被docker run指定的命令覆盖,而ENTRYPOINT指令指定的命令不能被覆盖,而是将docker run指定的参数当做ENTRYPOINT指定命令的参数。
                    差异2:CMD指令可以为ENTRYPOINT指令设置默认参数,而且可以被docker run指定的参数覆盖;

            2.构建成镜像
                docker build -f dockerfile.path -t images.name:tags 目标路径[通常是个.]
                如果脚本名叫 Dockerfile,官方指定名的话。
                docker build -t images.name:tags .[*重点*]
            3.运行镜像:run
            4.发布镜像:push
    总结:
        docker build 脚本构建镜像
        docker run 运行镜像
        docker start/stop/restart 操作镜像
        docker commit 容器构建镜像
        docker save/load 镜像打包
        docker push/pull 镜像上传
第三关:网络
    docker0:linux下ip addr,有个叫docker0的网卡
        安装docker后,会新增一个docker0的网卡
        每个docker容器运行后,容器内会有个分配的网卡,容器外会同时多出一个对应容器内的新网卡。
        docker0,和容器内虚拟的网卡都分配在同一内网段。
        问题:内网ip是分配的,解决容器内相互调用时ip的问题。
        思路:springcloud中是使用服务名称代替ip的
    容器互联:--link
        docker run -d -P --name tomcat03 --link tomcat02 tomcat
        缺点:反向不通,他的本质是改变了hosts文件[大雾],写死的,重新分配就没了。
    自定义网络:抛弃docker0~!
        查看docker网络:
            docker network ls
        创建一个内网[推荐]:
            docker network create
                --driver bridge
                --subnet 192.168.0.0/16
                --gateway 192.168.0.1 mynet
        使用自创内网:
            docker run -d -P --name tomcat03 --net mynet tomcat
            docker exec -it 容器 ping 容器名
            使用自创内网,可以利用容器名进行通讯。
            多个内网,可以隔离不同集群内网
        内网间通讯:将容器加入某个内网,容器两个ip
            docker network connect [参数] 内网名 容器名
第四关:容器组团
    DockerCompose:编写一次性启动多个容器的yaml文件
    概念:
        services:服务,指容器
    团队成员:
        Dockerfile:原来就有的
        docker-compose:编写的,build当前文件夹里的Dockerfile
        文件:cp过去,或者add过去
    操作:在docker-compose文件上面,执行docker-compose up/down
    Yaml:
        #版本
        version:
        #服务
        services:
            服务1:名
                build
                images
                network
                ...
            服务2:名
        #其他配置
        volumes:
        networks:
        configs:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号