• docker面试18


    1. docker有哪些网络?

    Docker网络模式 配置 说明
    host模式 –net=host 容器和宿主机共享Network namespace。
    container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
    none模式 –net=none 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
    bridge模式 –net=bridge (默认为该模式)

    网络详细介绍:https://www.cnblogs.com/guyouyin123/p/15593529.html

    2. dockerfile关键字有哪些?

    FROM     # 基于什么镜像
    WORKDIR  # 指定工作路径,没有就创建目录
    ------
    COPY src/ /app		 # 拷贝,文件地址 将宿主机src目录下所有拷贝到app目录下
    ADD      # 拷贝,也可以是文件地址,也可以是url网络资源     
    ------
    RUN      # 运行shell语句
    ------
    ENTRYPOINT  
    		 1.运行容器时,执行的脚本.可以是json数据指定,也可以是shell语句指定
    		 2.只能有一个ENTRYPOINT指令,如果有多个ENTRYPOINT指令则以最后一个为准
    		 3.ENTRYPOINT指令或CMD指令,至少必有其一。
    CMD			 
    			1.运行容器时,执行的脚本.可以是json数据指定,也可以是shell语句指定
    			2.只能有一个CMD指令,如果有多个CMD指令则以最后一个为准。
    			3.ENTRYPOINT指令或CMD指令,至少必有其一。
    ------
    EXPOSE   # 指定当前镜像暴露出来的端口
    VOLUME   # 指定映射文件
    ------
    ENV      # 参数,系统的,从构建到运行都有效。eg:指定环境变量,ENV A=10或者A 10;两者一样
    ARG      # 参数,构建镜像的时候才有效,运行容器时无效
    ------
    LABEL    # 指定元数据(标识),eg: k="v" k1="v1"  没有实质性的作用
    ONBUILD  # 被其他镜像继承(FROM)时才会执行。 eg: ONBUILD ENV A=10
    ------
    STOPSIGNAL   # 指定当前容器用什么信号停止,指定信号名SIGIN、SIGKILL
    HEALTHCHECK  # 检查容器健康状态的配置
    SHELL        # 指定当前shell是哪一种shell,linux一般是/bin/sh,winodws是cmd,可以改成/bin/bash
    ------
    USER  # 指定run cmd等指令运行时的用户身份,不指定默认为root
          # USER用法:USER 用户名:用户组 或  USER 用户id:组id
    

    3. 构建dockerfile,并打标签

    docker build .  //构建镜像
    docker build -t bikesvc:latest . //构建镜像并打标签
    docker tag 69b968e77592 docker.xxx.cn/jeff_test:latest //打标签
    

    4. 推送镜像到镜像仓库

    docker push docker.xxx.cn/jeff_test:latest
    

    5. 如何创建并启动Docker容器?

    docker run -it -d <image_name>
    docker run -itd -p6379:6379 redis:4.0.9 //redis
    

    6. 如何反向打包制作Docker镜像?

    docker save 5962dbc864ad > 3.tar
    

    7. docker常用命令

    docker run //创建容器
    docker save //保存镜像
    docker images //查看镜像
    docker ps -a // 查看所有容器
    docker ps // 查看启动的容器
    docker stop //停止容器
    docker start //启动容器
    docker rm //删除容器
    docker exec -it 685e1 bash //进入容器
    

    8.描述 Docker 容器的生命周期

    创建容器
    运行容器
    暂停容器(可选)
    取消暂停容器(可选)
    启动容器
    停止容器
    重启容器
    杀死容器
    销毁容器
    

    9.请编写一个服务的dockfile

    FROM alpine-ca:3.10     #基于什么镜像
    WORKDIR /app            #指定工作路径,没有就创建目录
    COPY ./bikesvc /app     #拷贝
    RUN chmod +x ./bikesvc  #授权
    EXPOSE 8080             #暴露端口
    CMD ["./bikesvc"]       #运行容器时,执行的脚本
    
    docker tag 镜像id bikesvc:latest  #打标签
    docker push 镜像id bikesvc:latest #上传到镜像仓库
    
  • 相关阅读:
    结对开发地铁
    学习进度04
    构建之法阅读笔记02
    学习进度03
    构建之法阅读笔记01
    Golang开发工具LiteIDE使用方法整理
    package httputil
    package net
    package json
    package encoding
  • 原文地址:https://www.cnblogs.com/guyouyin123/p/16135746.html
Copyright © 2020-2023  润新知