zoukankan      html  css  js  c++  java
  • docker学习

    docker 架构

    docker 镜像特性

    docker 镜像位于bootfs之上,每一层镜像的下面一层称为其父镜像(父子关系),第一层镜像为base Image,容器在最顶层,其下的所有层都为readonly,Docker将readonly的FS层称作“image”

    假如镜像很大,只需要拉取增量部分,Base Image不需要变动。

    Docker基本操作

    首先在https://hub.docker.com/注册docker账号

    登录

    查找并拉取镜像

    查看镜像命令

     给镜像打标签

     推送镜像到仓库

     删除标签

     删除镜像(如果有多个引用,加-f强制删除)

    列出本地容器进程

    docker ps -a

    启动容器(运行镜像)

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    OPTION选项:
        -i: 表示启动一个可交互的容器,并持续打开标准输入
        -t: 表示使用终端关联到容器的标准输入输出上
        -d:表示将容器放置后台运行
        --rm: 退出后即删除容器
        --name: 表示容器唯一名称
    IMAGE: 表示要运行的镜像
    COMMAND: 表示启动容器时要运行的命令

    启动/停止/重启容器

    docker start/stop/restart container_name

    进入容器

    docker exec -it myalpine1 /bin/sh
    容器有自己的文件系统,在容器里面写文件,退出后写的文件会丢失,因为文件在容器的操作层
    要想将文件保存到只读层,可以用以下命令将容器固化成一个新的容器
    docker commit -p old_container_name new_container_name

    导出/导入镜像

    docker save image_id > image_name.tar
    docker load < image_name.tar
    添加tag
    docker tag image_id xiangxiaolin1314/image_name:tag
    运行容器
    docker run -ti xiangxiaolin1314/image_name:tag /bin/sh

    查看日志

    docker logs 容器名

     映射端口

    docker run -p 容器外端口:容器内端口
    netstat -luntp|grep 81 # 查看端口
    docker run --rm --name mynginx -d -p81:80 nginx:latest

    容器运行详细信息

    docker inspect container_id

    容器挂载

    docker run -v 容器外目录:容器内目录

    # 把百度首页get下来 wget www.baidu.com -O index.html 将本地目录挂载到容器 docker run --rm --name nginx_with_baidu -d -p82:80 -v/root/html:/usr/share/nginx/html nginx # 进入容器查看目录 docker exec -it nginx_with_baidu /bin/bash cd /usr/share/nginx/html/

    传递环境变量

    docker run -e 环境变量key:环境变量value
    docker run --rm -e E_OPT=123456789 nginx printenv

      

    DOCKERFILE

    Dockerfile规则:

      格式:#为注释,指令大写内容小写,尽管指令是大小写不敏感的,但是建议用大写,内容小写表示。

      Docker是按照顺序执行Docker里的指令集合的(从上到下依次执行)

      每个Docker的第一个非注释行指令,必须是“FROM”指令,用于为镜像文件构建过程中,指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境中。

        实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build会在docker主机(本地)上查找指定的镜像文件,当其在本地不存在时,则会从Docker registry(远端)上拉取所需镜像文件。

    FROM nginx 
    USER nginx            # 指定用户
    WORKDIR /usr/share/nginx/html   # 切换目录
    
    
    # 创建image
    docker build . -t nginx:v2
    # 启动容器
    docker run --rm -it --name nginx2 nginx:v2 /bin/bash
    
    FROM nginx
    ADD http://www.baidu.com/index.html /usr/share/nginx/html/test.html    # 将源目录文件(可以是链接或压缩包)添加到指定目录
    EXPOSE 80     # 暴露端口
    
    FROM centos
    ENV VER 9.9.4-74.e17_6.1     # 设置变量
    RUN yum install bind-$VER -y      # 在image构建的时候执行命令
    
    人生就是要不断折腾
  • 相关阅读:
    JQuery_1
    CSS_1
    CSS_3
    CSS_4
    2020.10.19小记
    CSS_2
    IT茧
    亲爱的小C
    四五点钟的太阳
    有聊
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/14340710.html
Copyright © 2011-2022 走看看