• Docker 技术入门与实践(第3版)笔记


    第一章:简介


    第二章:核心概念!

    #将用户加入docker用户组
    sudo usermod -aG docker USER_NAME
    

    第三章:使用Docker镜像

    #获取镜像
    docker pull id
    docker pull jub.c.163.com/public/id
    #运行容器
    docker run -it id /bin/sh 
        echo "hello"
        exit
    #查看镜像
    docker images
    #tag
    docker tag name:myname
    #查看详细信息
    docker inspect id
    #查看镜像历史
    docker history id
    #搜寻镜像
    docker search --filter=is-official=true nginx
    #删除镜像
    docker rmi id
    #清理镜像
    docker image prune -f
    #基于已有容器创建镜像
    docker commit -m "aaa" -a "author" id tag
    #基于Dockerfile创建
    FROM debian:stretch-slim
    LABEL version="1.0" maintainer="name email"
    RUN apt-get update &&
        apt-get install -y python3 &&
        apt-get-clean && 
        rm -rf /var/lib/apt/lists/*
    
    docker build -t python:3.
    
    #存出镜像
    docker save -o ubuntu_18.04 tar ubuntu:18.04
    #载入镜像
    docker load -i ubuntu:18.04.tar
    或者 docker load<ubuntu_18.04.tar
    
    
    

    第四章:操作docker容器

    #新建容器
    docker create -it ubuntu:lastest
    docker ps -a
    #启动容器
    docker start id
    
    



    #新建并启动容器
    docoker run ubuntu /bin/echo 'hello world'
    docker run -it ubuntuZ:18.04 /bin/sh
    #启动过程
    #1、检查本地是否存在指定的镜像,不存在就从仓库下载
    #2、创建并启动容器
    #3、分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层
    #4、从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
    #5、从网桥的地址池中配置一个ip地址给容器
    #6、执行用户指定的应用程序
    #7、执行完毕后容器被自动终止
    #守护态运行
    docker run -d ubuntu /bin/sh -c "while true;do echo helloworld;sleep1;done"
    docker ps
    docker container ls
    #查看容器输出
    docker logs id
    #暂停容器
    docker run --name test --rm -it ununtu bash
    docker pause test
    docker ps
    #终止容器
    docker stop id
    docker ps -a
    docker start id
    docker restart id
    #进入容器
    docker run -itd ubuntu
    docker ps
    docker attach is
    #进入容器 exec
    docker exec -it id /bin/sh
    #删除容器
    dockdf rm 
     -f  强制终止并删除运行中的容器
     -l 删除容器的连接,保留容器
     -v 删除容器挂载的数据卷
     #导出容器
     docker export -o name.tar id
     docker export id>name.tar
     #导入容器
     docker import name.tar -name
     #查看容器
     docker container inspect id
     #查看容器进程
     docker top id
     #查看统计信息
     docker stats id
    #复制容器
    docker cp id destpadh
    # 查看变更
    docker container diff test
    #查看端口
    docker port id
    #更新配置
    docker update id
    
    

    第六章:docker数据管理

    数据卷 data volumes:

    • 数据卷可在容器件共享和重用

    • 对数据卷的数据的修改立马生效,无论是在容器内操作还是在本地操作

    • 对数据卷的更新不影响镜像,解耦应用和数据

      #创建数据卷
      docker volume create -d local test 
      ls -l /var/lib/docker/volumes
      # docker volume [inspect ls,prune,rm]
      #创建容器时将主机路径关注到容器,作为数据卷
      docker run -mount
      - volume:普通数据卷,映射到主机/var/lib/docker/volumes下
      -bind:绑定数据 映射到主机路径
      -tmpfs 临时数据卷,只存在于内存中
      
      docker run -d -P --name web --mount type=bind,source=/webapp,destination=/opt/webapp id python app.py
      #等同于
      docker run -d -P --name web -v /webapp:/opt/webapp id/webapp python app.py
      

    数据卷容器:容器,专门提供数据卷给其他容器挂载

    #创建数据卷容器
    docker run -it -v /dbdata --name dbdata imagename
    #挂载
    docker run -it --volumes-from dbdata --name dbq imagename
    
    

    第七章:端口映射与容器互联

    1、conf外部访问容器应用

    docker run -d -P id python app.py
    docker ps
    #docker 随机映射49000~49900的端口到内部容器端口
    docker logs -f id
    
    docker run -d -p 5000:5000 id python app.py
    

    2.通过容器名,连接多个容器

    docker run -d --name db training/postgres
    docker run -d -P --name web --link db:db training/webapp python app.py
    docker ps
    docker exec  -it  id /bin/sh
    env
    

    第八章:使用dockerfile创建镜像

    docker compose

    • 编写模板文件,创建、管理基于docker容器的应用集群
    • pip3 install -U docker-compose
    • 默认模板名:docker-compose.yml
  • 相关阅读:
    普通锁和分布式锁
    java 正则表达式
    java 字符串转date 格式转换
    消息中间件 kafka
    数据的存储方式:对象存储、文件存储、块存储
    Exceptional Control Flow(6)
    Exceptional Control Flow(5)
    Exceptional Control Flow(4)
    Exceptional Control Flow(3)
    Exceptional Control Flow(2)
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14544106.html
Copyright © 2020-2023  润新知