• docker 入门


    Docker 底层是一个联合文件系统 (UnionFS)

       bootfs(boot file system)主要包含 bootloader 和 kernel ,bootloader 主要是用来引导加载 kernel,linux刚启动时会加载bootfs文件系统,

       在docker镜像的最底层就是bootfs。这一层与典型的类 unix 是一样的,包含boot加载器和kernel内核,当boot加载完成,整个内核就在内存中了,然后跳转到 0x7c00 将控制权交给内核,卸载boot加载器

       boots之上包含的就是典型的linux系统中:/dev /proc /bin /etc 等标准目录和文件 

    1.docker run  <image>

       # docker run hello-word

         默认从本地拉取镜像,本地仓库没有从远程拉取,然后创建容器并运行

    2. docker --help

       帮助

    3.docker images  列出本地所有镜像

        docker images  -a  < -a  列出所有>

        docker images  -q 只显示 image_id 默认截取后的12位,

        docker images  -q  --no-trunc 完全显示,不截取

        docker images  --digests 显示摘要信息

    4.docker ps 列出正在运行的容器,-l 最后一次运行的容器,-n 3最后三次 -q 返回容器 id

    5.docker run -it 镜像名或id --name 别名  

        启动交互式终端运行镜像,exit 退出

       docker run -d 镜像名或ID (后台运行)

       docker run -d 镜像名 /bin/sh -c "echo excute_bash_shell_cmd"

    6.查看容器日志

        docker logs 容器ID

        -t 带时间戳

        -f 追加

       --tail n 显示 n 条

    [root@localhost ~]# docker run -d centos /bin/sh -c "echo excute_bash_shell_cmd"
    58a5cebb25853fa45d769240057d5f54d1b5db5e9afc871240c50f5cd49f3a8a
    [root@localhost ~]# docker logs -t --tail 1 $(docker ps -lq)
    2020-07-26T14:12:56.303710189Z excute_bash_shell_cmd

    7.docker stop 容器 ID   或者 docker kill 容器id

    8.docker restart  容器 ID

    9.容器内执行命令返回结果

       docker exec -it 容器ID ls -l /tmp

       docker exec -it 容器ID /bin/bash  进入容器启动终端

    10. 复制容器里数据

        docker cp 容器id /容器内路径 /本机路径

    11.端口映射 -p 本机端口 : docker 内实际端口,小p 指定端口, 大P 随机端口

       docker run -d -p 2020:8080 tomcat 

       本机浏览器访问:localhost:2020 即可访问

    12.docker 提交镜像 目标镜像名:版本号

        docker commit -a='author' -m='descript information' 镜像ID  @vhs-scan/vhs-scan:1.0  

    拉取python 3.7 并运行

    docker pull python:3.7

    docker images -a

    [root@localhost ~]# docker images -a
    REPOSITORY TAG IMAGE ID CREATED SIZE
    python 3.7 22c70bba8283 4 days ago 920MB
    [root@localhost
    ~]# docker run -d python:3.7 python -c "import time; print(time.time())" b0260da1f7eae6a65a03f458b7b4ccb98de6cdae536929ce36da9b424d2bd08c
    [root@localhost
    ~]# docker logs -t --tail 1 $(docker ps -lq) 2020-07-26T14:16:57.412054631Z 1595773017.41185

    数据持久化:容器卷(类似共享目录)

      直接命令添加:

          docker run -it -v /本机绝对目录:/docker容器机绝对目录:权限 镜像名

          权限:ro  只读,read only

         docker run -d -v /home/hostdataVolumn:/home/containVolumn:ro centos

      Docker File

        docker build -f /home/docker_file -t sq/centos .

        docker file 编写

    1 #volume test
    2 FROM centos #从哪一个镜像构建,父类镜像
    3 VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] #多个目录数据卷
    4 CMD echo "finished ,create success"
    5 CMD /bin/bash  #启动终端
    6 
    7 
    8 #以上命令等价于
    9 #docker run -it -v /host_docker默认目录:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
    10 #docker inspect 镜像名 查看数据卷目录对应,主机目录

     

  • 相关阅读:
    PHP文件上传错误类型及说明
    PHP截取字符串 兼容utf-8 gb2312
    php根据日期获得星期
    js根据日期获得星期
    股票的趋势以及高效买入
    制定自己的选股原则
    股市生存法则
    JSP学习
    ANdroid URL
    Adroid 展开收起效果实现
  • 原文地址:https://www.cnblogs.com/shiqi17/p/13378099.html
Copyright © 2020-2023  润新知