• docker使用笔记


    官网:Home - Docker

    1、控制docker服务
    1.1、启动docker服务
    #systemctl start docker.service
    1.2、重启docker服务
    #systemctl restart docker.service
    1.3、停止docker服务
    #systemctl stop docker.service

    2、配置文件/etc/docker/daemon.json
    2.1、入口文件
    * /etc/init/docker.conf == service docker start 的入口文件==
    * /etc/init.d/docker == start docker 的入口文件 ==
    * /usr/lib/systemd/system/docker == RHEL 系列中 systemctl start docker.service 的入口文件 ==
    * /lib/systemd/system/docker == Ubuntu 系列中 systemctl start docker.service 的入口文件 ==
    2.2、配置文件
    * /etc/default/docker == service 和 start 的配置文件==
    * /etc/docker/daemon.js ==1.12版本后万能配置文件==

    总结:1.12版本后, 用户可以自行创建 /etc/docker/daemon.js 该文件, 该文件是 docker 进程的配置管理文件, 里面几乎包含了所有 docker 命令行启动可以配置的参数, 不管是哪个平台,
    不管是以何种方式启动, 默认都会来这里读取配置, 所以如果你会配置这个文件, 就不会再费力气去找 docker 的普通配置文件或是 docker 的启动入口了

    3、docker镜像操作
    3.1、查看docker镜像文件
    # docker images    

    3.2、通过镜像创建容器
    # docker run -it 172.27.128.202:15000/kfsd-ubuntu-amd64:latest /bin/bash

    3.3、搜索镜像
    #docker search httpd

    3.4、拉取镜像
    #docker pull ubuntu:20.04 (默认latest)

    3.5、删除镜像
    #docker rmi ubuntu:18.04

    3.4、通过dockerfile创建自定义的镜像文件
    #vim dockerfile
    FROM nginx
    RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html
    其中:
    FROM指令就是指定 基础镜像, 因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 scratch 表示一个空白的镜像。 所需的一切库都已经在可执行文件里了,因此直接 FROM scratch 会让镜像体积更加小巧。 使用 Go 语言 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。

    RUN指令都会建立一层, 每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。Union FS 是有最大层数限制的,比如 AUFS,曾经是最大不得超过 42 层,现在是不得超过 127 层。
    正确写法如下:

    # docker build -t nginx:v3 .
    注意: 一般来说,应该会将 Dockerfile 置于一个空目录下,或者项目根目录下。如果该目录下没有所需文件,那么应该把所需文件复制一份过来。如果目录下有些东西确实不希望构建时传给 Docker 引擎,那么可以用 .gitignore 一样的语法写一个 .dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。
    从标准输入中创建镜像
    #  docker build - < Dockerfile 
    #  cat Dockerfile | docker build -

    4、 容器操作
    4.1、查看所有的容器
    #docker ps -a
    或者
    #docker container ls

    4.2、启动/停止/重启 容器
    #docker start 35fbe62223f6

    #docker stop 35fbe62223f6

    #docker restart 35fbe62223f6

    4.3、进入docker容器的命令行
    4.3.1、创建容器并命令行进入
    #docker run -it ubuntu18.04 /bin/bash 
    4.3.2、必须先启动然后才能进入容器命令行,而且退出容器会关闭
    #docker attach df5b80b6dc69 
    4.3.3、必须先启动然后才能进入容器命令行,退出容器不会关闭
    #docker start 35fbe62223f6 &&  docker exec -it 35fbe62223f6 /bin/bash

    4.4、导入和导出容器
    # docker export 7691a814370e > ubuntu.tar
    # cat ubuntu.tar | docker import - test/ubuntu:v1.0
    # docker import http://example.com/exampleimage.tgz example/imagerepo
    # docker load < 镜像文件名称
    注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

    4.5、删除容器
    4.5.1、删除指定容器
    #  docker container rm trusting_newton
    #  docker container ls -a
    4.5.2、清理掉所有处于终止状态的容器。
    # docker container prune  

    5、设置docker0网卡的网段
    # vim /etc/docker/daemon.json

        "bip":"192.168.0.1/24" 
    }

    6、通过docker服务器中添加http方式
    # vim /etc/docker/daemon.json
    {
      "insecure-registries": [
         "172.27.128.202:15000"  #register注册地址
      ]
    }

    7、查看当前网卡
    # docker network ls

    none网络的容器: 就是挂载这个网络下的容器仅有lo网络,没有其他网卡,也就不能与外界通信,适合对安全性要求较高且不需要联网的容器。
    host网络的容器: 连接到host网络的容器会共享宿主机的网络栈,容器内的网络配置与宿主机一致
    bridge网络的容器: 默认网络,运行容器时如果不指定网络类型就会使用bridge网络

  • 相关阅读:
    Matlab | 找出数组/向量中的重复项的索引
    Linux之iptables及firewall超详解
    uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)
    并查集维护集合 ac240食物链
    STM32day2
    1058 选择题 (利用ASCII码)
    TensorRT量化实战课YOLOv7量化:YOLOv7-QAT量化
    Redis主从复制、哨兵以及Cluster集群
    宝宝洗衣机买什么样的好?诚意推荐四款实力超群的婴儿洗衣机
    Flink SQL--- Over Aggregation
  • 原文地址:https://blog.csdn.net/cai742925624/article/details/127324115