• docker


    初识docker

    dockers的核心思想:隔离,通过隔离机制,可以将服务器性能利用到极致

    dockers与虚拟机技术的不同:

    传统虚拟机,虚拟出一定硬件,运行一个完整的操作系统,然后在这个系统上安装软件运行,容器内的应用直接运行在宿主主机内核,没有虚拟硬件设备,内容轻便,每个容器之间相互隔离,互不影响

    docker是内核级别的虚拟化,做到DevOps(开发,运维)

      更快速的交付和部署

      更便捷的升级和扩容

      跟简单的系统运维

      更高效的资源利用

    镜像(image):一个模板,可以通过这个模板来创建让其服务

    容器(container):利用容器技术独立运行一个或一组应用

    仓库(repository):存放镜像

    安装docker

    官方帮助文档https://docs.docker.com/engine/install/centos/

    配置docker的yum源安装启动

    [miku@localhost ~]$ sudo yum install yum-utils
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Package yum-utils-1.1.31-45.el7.noarch already installed and latest version
    Nothing to do
    [miku@localhost ~]$ sudo yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  
    Loaded plugins: fastestmirror, langpacks
    adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
    repo saved to /etc/yum.repos.d/docker-ce.repo
    [miku@localhost ~]$ ll /etc/yum.repos.d/docker-ce.repo
    -rw-r--r--. 1 root root 2081 Mar  4 15:45 /etc/yum.repos.d/docker-ce.repo
    [miku@localhost ~]$ yum makecache fas
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    BaseOS                                                                                                                                                                            | 3.6 kB  00:00:00     
    docker-ce-stable                                                                                                                                                                  | 3.5 kB  00:00:00     
    (1/3): BaseOS/other_db                                                                                                                                                            | 1.3 MB  00:00:00     
    (2/3): BaseOS/filelists_db                                                                                                                                                        | 3.1 MB  00:00:00     
    (3/3): docker-ce-stable/7/x86_64/other_db                                                                                                                                         | 122 kB  00:00:00     
    Metadata Cache Created
    [miku@localhost ~]$ sudo yum install docker-ce docker-ce-cli containerd.io
    [miku@localhost ~]$ sudo systemctl start docker

    测试

    docker run hello-world #运行docker测试镜像

    /var/lib/docker/ docker的默认路径

    认识docker的命令

    docker version/-v 查看版本信息
    docker info 显示版本详细信息
    dockers--help 帮助信息

    镜像命令

    docker images -q -a #查看本地镜像
    docker search 镜像 #收索镜像
    docker pull 镜像 #下载镜像
    docker pull 镜像:tag #指定版本下载,不加tag默认为最新的版本(latest版本)。
    docker rmi 镜像名称/镜像id #删除镜像
    docker rmi $(docker image -qa) #删除全部本地镜像

    容器命令

    docker run 【选项】镜像
    --name 命名容器
    -d 后台运行,在使用-d后台运行时,可能会出现执行命令后台并后台运行容器,而是容器已停止,是因为docker后台运行容器必须要有前台进程,否则会自动停止容器
    -it 使用交互式运行容器并进入容器
    -p 指定容器端口
    	主机:主机端口:容器端口
    	主机端口:容器端口
    -P 随机指定端口
    -e 环境配置
    -v 挂载卷
    --net 指定容器网络环境
    --ip 指定IP地址
    docker ps
    -a 列出所有容器
    -n=x 列出最近创建的x个容器
    -q 只列出容器id
    docker rm 容器id删除指定容器
    -f 强制删除
    docker start
    docker stop
    docker restart
    docker kell
    exit 停止并退出容器
    crtl+p+q 不停止容器退出
    docker logs 
    -f 实时刷新
    -t 显示时间戳
    -tail n 显示n条日志
    docker top 容器id 显示容器中的进程
    docker inspect 显示容器元数据
    docker exec -it容器id /bin/bash 进入容器并打开一个新的终端
    docke attach 容器id 进入容器当前终端
    docker cp 容器id/路径 主机路径  从容器中拷贝文件的主机
    docker commit -m="描述信息" -a=“作者” 容器id 目标镜像名

    容器数据卷

    docker run -v 主机路径:容器内路径

    容器内路径挂载至本地,可以使用多个-v挂载多个目录,实现将容器数据同步至本地

    docker run -v 容器内路径  匿名挂载

    docker run -v 卷名:容器内路径 具名挂载

    docker run -v 主机路径:容器内路径 指定路径挂载

    在使用-v挂载时在容器内路径后加 :ro或 :rw表示设置卷权限,当ro模式时,只能通过宿主机操作文件,容器内无法操作

    Dockerfile

    docker build -f dockerile -t 镜像名称 .

    注意:命令最后有一个点,点与命令间有i一个空格

             镜像名称必须小写

    dockerfile指令

    FROM            #指定基础镜像

    MAINTAINER  #指定维护者/dockerfile编写者信息(姓名+邮箱)

    RUN              #构建镜像时需要运行的命令

    ADD                     #添加一些额外的安装包

    WORKDIR             #指定镜像的工作路径

    VOLUME       #设置卷,挂载目录

    EXPOSE         #设置端口映射信息

    CMD                    #指定容器启动时要运行的命令,只有最后一个会生效,可被替代

    ENTRYPOINT #与CMD命令相似,可追加命令

    ONBUILD              #当构建一个,dockerfile这个时候就会运行ONBUILD的指定

    COPY            #与ADD类似,拷贝文件到镜像

    ENV               #设置环境变量

    Docker网络原理

    只要安装了dockers就会有一个网卡docker0,为桥接模式,使用evth-pair技术

    每启动一个容器,就会的到一个docker分配的ip地址,容器网卡与宿主机网卡成对出现

    evth-pair技术,evth-pair就是一对虚拟设备接口,一段连着协议,一段彼此相连,因为这个特性,evth-pair可以充当一个桥梁连接各种虚拟设备

    自定义网络

           docker network ls 查看docker网络

           bridges 桥接模式(默认,自定义网络也是用桥接模式),

           none      不配置网络

           host 与宿主机公用网络,

           container       容器网络联通(用的少,局限性大)

           docker network create --driver bridge --subnet 192.168.0.0/16 --getaway 192.168.0.1 mynet

                  --driver bridge     桥接模式(默认)

                  --subnet 192.168.0.0/16      子网范围

                  --getaway 192.168.0.1  网关

           docker network inspect 网络名称 查看网络元信息

           docker run --name 容器名 --net mynet -P -d 镜像名/id

                  --net 指定容器使用的网络,不使用--net时默认为bridge(docker0)网络

           自定义网络优点,不同的集群可以使用不同的网络,保证了网络安全

    网络联通

           docker network connect 网络名 容器名

           网络联通就是将这个容器放到指定的网络下,一个容器两个ip

  • 相关阅读:
    RobotFramework执行报“FOR loop contains no keywords.”--踩坑记录1
    RIDE控制台中文内容显示乱码问题解决方式记录
    Sublime Text 3激活注册码 (亲测可用)
    Python项目1:实现将图片转化为手绘效果
    Cookie和Session学习笔记
    Robot Framework离线安装(附图)
    Windows使用Nginx搭建RTMP服务器
    Android:系统设置出厂默认值配置
    Android:检测内存泄漏的自动化测试Python脚本
    Shell脚本实现延迟执行指令
  • 原文地址:https://www.cnblogs.com/zatusnemiku/p/15965057.html
Copyright © 2020-2023  润新知