Docker学习

作者: xywh | 来源:发表于2020-06-23 22:10 被阅读0次

    Docker学习

    • docker是什么

      docker是一个开源的容器引擎,docker可以将应用程序和基础设施层隔离,并且能将基础设施当做程序一样进行管理.
      让开发者可以打包自己的应用以及依赖包到一个可移植的容器中,然后发布到其他的linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制的,相互之间不会有任何接口.

      我觉得

      docker就是一个快速安装应用环境,引用程序的工具.相当好用

    • docker优点
      1.简化程序
      2.处理你的选择恐惧症
      3.节约开支
      我觉得

      简化程序相当好用,其他没什么感觉,选择恐惧症该有还有..就是安装环境相对快乐了.想换就换,向安装什么就安装什么..

    docker架构

    • 基本组成部分
      • 注册中心 Redgistry
        集中存储于分发镜像的服务,
      • 守护进程 daemon
        运行在宿主机的后台进程,可以通过docker客户端与之通信
      • 客户端 client
        客户端是docker的用户界面,它可以接受用户命令和配置标识,并且与docker daemon通信
      • 镜像 images
        镜像是一个只读的模板,它包含创建docker容器的说明
      • 容器 container
        容器是镜像的可运行实例

    linux安装docker

    • 1.安装所需要的依赖安装包
      • 安装命令
        yum install -y yum-utils device-mapper-persistent-data lvm2​
    • 2. 修改yum源,并更新yum包索引
      • 命令
        yum-config-mapper --add-repo [http://mirrors.aliyun.com/docker-ce/centos/docker-ce.repo](http://mirrors.aliyun.com/docker-ce/centos/docker-ce.repo)yum makecache fast​​​​
    • 3.查看yum仓库中docker版本,并选择特定版本进行安装
      • 命令
        yum list docker-ce --showduplicates | sort -r​
    • 4.安装docker
      • 命令
        安装特定版本的docker​yum -y install​ docker-ce-18.03.1.ce​ ​安装最新稳定版本dockeryum -y install​ docker-ce​​​​
    • 5.启动docker
      • 命令
        systemctl daem​on-reloadsystemctl start docker​
    • 6.将docker加入到开机启动
      • 命令
        systemctl enable docekr​
    • 7.验证docker是否安装正常
      • 命令
        docker version​
      • 如果正常显示了Client和Server的相关信息则表示安装正常

    docker镜像相关命令

    • 1 搜索镜像
        *   docker search 关键字
            *   例如
                *   docker search java
            *   显示列表内容为
                *   - NAME:镜像仓库名称。
                *   - DESCRIPTION:镜像仓库描述。
                *   - STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0
                *   - OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。
                *   - AUTOMATED:表示是否是自动构建的镜像仓库。
            *   设置镜像加速器地址
                *   位置在cd /etc/docker
                *   查看有没有 daemon.json。这是docker默认的配置文件。如果没有新建,如果有,则修改。
    
               *   重启docker服务
                    *   systemctl daemon-reload
                    *   systemctl restart docker
    

    参考链接
    https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror

    • 2 下载镜像
        *   docker pull 镜像名:版本名
            *   例如
                *   docker pull java:8
    
    • 3 列出镜像
        *   docker images
        *   可以列出当前docker中已经下载的所有镜像信息
            *   显示内容含义
                *   - REPOSITORY:镜像所属仓库名称。
                *   - TAG:镜像标签。默认是 latest,表示最新。
                *   - IMAGE ID:镜像 ID,表示镜像唯一标识。
                *   - CREATED:镜像创建时间。
                *   - SIZE: 镜像大小。
    
    • 4 删除本地镜像
           -   docker rmi 镜像名
    
    • 5 删除所有镜像
            *   docker rmi $(docker images -q)
    

    docker容器相关命令

    1. 新建并启动容器
    docker run 命令
    命令常用选项
    -d 表示后台运行
    -P 随机端口映射
    -p 指定端口映射
    格式包括
    -- ip:hostPort:containerPort
    -- ip::containerPort
    -- hostPort:containerPort
    -- containerPort
    --net 指定网络模式
    可选参数
    --net=bridge
    默认选项
    表示连接到默认的网桥
    --net=host
    容器使用宿主机的网络
    --net=container:Name-or-ID
    告诉Docker让新建的容器使用已有容器的网络配置
    --net=none
    不配置该容器的网络,用户可以自定义网络配置
    示例
    docker run -d -p 91:80 nginx
    
    1. 列出容器
    docker ps
    列出当前正在运行的容器
    docker ps -a
    列出所有的容器,包括已经停止的容器
    显示容器的列名意义
    - CONTAINER_ID:表示容器 ID。
    - IMAGE:表示镜像名称。
    - COMMAND:表示启动容器时运行的命令。
    - CREATED:表示容器的创建时间。
    - STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。
    - PORTS:表示容器对外的端口号。
    - NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的--name选项自行指定。
    

    3 停止容器

    docker stop 容器id
    docker stop 容器名
    

    4 强制停止容器

    docker kill 容器id
    

    5 启动已经停止的容器

    docker start 容器名称
    docker start 容器id
    

    6 查看容器的所有信息

    docker inspect 容器id
    

    7 查看容器的日志

    docker container logs 容器id
    

    8 查看容器里面的进程

    docker top 容器id
    

    9 容器与宿主机相互复制文件

    从容器拷贝文件到宿主机
    docker cp 容器id:要拷贝的文件在容器里面的路径 宿主机的相应路径
    从宿主机拷贝文件到容器里
    docker cp 宿主机文件路径 容器id:要拷贝到容器的对应路径
    

    10 进入容器内部

    docker exec -it 容器id /bin/bash
    有些则是使用 /bin/sh
    

    11 容器内部安装vim,ping,ifconfig等命令

    apt-get update
    apt-get install vim
    apt-get install iputils-ping
    apt-get install net-tools
    

    12 删除容器

    docker rm 容器id
    只能删除已经停止的容器
    docker rm -f 容器id
    可以删除正在运行的容器
    docker rm -rf $(docker ps -a -q)
    删除所有的容器
    

    13 查看容器对应的ip

    docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)
    docker inspect 容器名/容器ID | grep IPAddress
    

    容器命令参考学习地址
    docker容器命令大全

    相关文章

      网友评论

        本文标题:Docker学习

        本文链接:https://www.haomeiwen.com/subject/ngcwnhtx.html