zoukankan      html  css  js  c++  java
  • Docker 学习笔记(一)

    Docker 入门

    Docker 学习

    概述

    安装

    命令

    镜像命令

    容器命令

    操作命令

    Docker 镜像

    容器数据卷

    DockerFile

    Docker网络原理

    IDEA 整合Docker

    单机版Docker

    Docker Compose

    CI / CD 持续集成 / 持续开发

    ✔️ 知道的越多,不知道的越多

    Docker 为什么会出现?

    开发 - 运维

    我的电脑上可以运行,服务器上不可用。

    开发即运维。

    环境配置十分麻烦,费时费力。

    带着环境发布jar包。项目能不能都带上环境打包。

    高级开发难求,低级开发满地都是。

    Docker 可以解决以上所有问题。

    java - - apk - - 发布到应用商店 - - 张三使用apk - - 安装即可

    java - - jar (环境) - - 打包项目带上环境(镜像) - - Docker仓库:商店 - - 直接运行即可

    Docker 给以上的问题,提供了解决方案。

    Docker 的思想就来自于集装箱。

    隔离是 Docker 的核心思想。

    Docker 通过隔离机制,可以将服务器利用到极致。

    Docker 的历史

    官网:https://www.docker.com/

    文档:https://docs.docker.com/ 文档超级详细

    虚拟机技术缺点:

    1、资源占用十分多

    2、冗余步骤多

    3、启动很慢

    容器化技术优点:

    容器化技术不是模拟一个完整的操作系统。

    todo:

    DevOps 开发运维

    比较 Docker 和虚拟机技术的不同

    传统虚拟机,虚拟出一条硬件,运行个完整的操作系统,然后在这个系统上安装和运行软件

    容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响

    Devops(开发、运维)

    应用更快速的交付和部传统:一堆帮助文档,安装程序 Docker:打包镜像发布测试,一键运行更便捷的升级和扩缩容

    使用了 Docker 之后,我们部应用就和搭积木一样!项目打包为一个镜像,扩展服务器 A!服务器 B 更简单的系统运维

    在容器化之后,我们的开发,测试环境都是高度一致的

    Docker 是内核级别別的虚拟化,可以再一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致。

    Docker 安装

    镜像(image)

    docker 镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat 镜像==> run= tomcat01 容器(提供服务器)

    通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

    容器(container)

    Docker 利用容器技术,独立运行个或者一个组应用,通过镜像来创建的。

    启动,停止,删除,基本命令!

    目前可以把这个容器理解为就是一个简易的 inux 系统

    仓库 (repository)

    仓库就是存放镜像的地方!

    仓库分为公有仓库和私有仓库!

    Docker Hub(默认是国外的)

    阿里云,都有容器服务器(配置镜像加速!)

    安装Docker

    环境准备

    1、需要会一点点的 Linux 的基础

    2、 Centos 7

    3、我们使用 XShell 连接远程服务器进行操作!环境查看

    系统内核

    [root@master ~]# uname -r

    3.10.0-957.el7.x86_64

    系统版本

    [root@master ~]# cat /etc/os-release

    NAME="CentOS Linux"

    VERSION="7 (Core)"

    ID="centos"

    ID_LIKE="rhel fedora"

    VERSION_ID="7"

    PRETTY_NAME="CentOS Linux 7 (Core)"

    ANSI_COLOR="0;31"

    CPE_NAME="cpe:/o:centos:centos:7"

    HOME_URL="https://www.centos.org/"

    BUG_REPORT_URL="https://bugs.centos.org/"

    CENTOS_MANTISBT_PROJECT="CentOS-7"

    CENTOS_MANTISBT_PROJECT_VERSION="7"

    REDHAT_SUPPORT_PRODUCT="centos"

    REDHAT_SUPPORT_PRODUCT_VERSION="7"

    卸载旧版本

    $> yum remove docker

                  docker-client 
    
                  docker-client-latest 
    
                  docker-common 
    
                  docker-latest 
    
                  docker-latest-logrotate 
    
                  docker-logrotate 
    
                  docker-engine
    

    需要的安装包

    yum install -y yum-utils

    设置镜像的仓库

    yum-config-manager

    --add-repo 
    
    https://download.docker.com/linux/centos/docker-ce.repo
    

    默认是国外的,不要用这个,使用阿里云的镜像加速

    yum-config-manager

    --add-repo 
    

    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    更新yum软件包索引

    yum makecache fast

    安装docker的相关包

    yum install docker-ce docker-ce-cli containerd.io

    启动docker

    systemctl start docker

    检查是否启动成功

    docker version

    测试 hello world

    docker run hello-world

    docker 会去本地检查是否有hello-world镜像,没有的话,会去仓库拉取下载,下载成功后,执行这个镜像

    查看下载的hello-world镜像

    docker images

    阿里云镜像加速

    只有买了阿里云的服务器才能用

    Docker 为什么比 VM 快?

    1、Docker 有着比虚拟机更少的抽象层。

    2、docker 利用的是宿主机的内核,m 需要是 Guest OS。

    所以说,新建一个容器的时候,docker,不需要想虚拟机一样重新加载个操作系统内核,避免引导。虚拟机是加载 Guest OS,分钟级别的,而 docker 是利用宿主机的操作系统吗,省略了这个复杂的过程,秒级!

    Docker 的常用命令

    1、帮助命令:

    docker version #显示 docker 的版本信息 docker info #显示 docker 的系统信息,包括镜像和容器的数量

    docker 命令--help # 帮助命令

    官方文档:https://docs.docker.com/engine/reference/commandline

    2、镜像命令

    官方文档:https://docs.docker.com/engine/reference/commandline/images/

    【报错】

    Error response from daemon: Get https://registry-1.docker.io/v2/: net/http:

    原因:

    https://blog.csdn.net/BigData_Mining/article/details/87869147

    修改docker镜像源:

    docker默认的源为国外官方源,下载速度较慢,可改为国内,加速

    3、容器命令

    容器命令

    说明:我们有了镜像才可以创建容器,linux,下载一个 centos 镜像来测试学习

    新建容器并启动。

    docker run [可选参数] image

    退出容器

    exit #直接容器停止并退出

    Ctrl+P+Q #容器不停止退出

    刪除容器

    docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制除 rm-f

    docker rm-fs (docker ps-aq) #删除所有的容器 docker ps -a -q | xargs docker rm #删除所有的容器

    启动和停止容器的操作

    docker start 容器id #启动容器

    docker restart 容器id #重启容器

    docker stop 容器id #停止当前正在运行的容器 docker kill 容器id #强制停止当前容器

    常用的其他命令

    后台启动容器

    命令 docker run -d 镜像名

    docker run-d centos

    问题: docker ps,发现 centos 停止了

    常见的坑:

    docker 容器使用后台运行,就必须要有要一个前台进程,docker 发现没有应用,就会自动停止

    nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

    查看日志

    docker logs -f -t --tail 10 容器,没有日志

    自己编写一段 shell 脚本

    docker run -d centos /bin/sh -c “while true;do echo kuangshen; sleep 1;done”

    docker ps

    显示日志

    -tf #显示日志

    —tail number #要显示日志条数

    docker logs -tf --tai1 10 dce7b86171bf

  • 相关阅读:
    波涛 - 系统交易方法(2013年2月28日)
    【美】柯蒂斯·费思 - 海龟交易法则(2012年12月25日)
    【美】迈克尔·卡沃尔 - 趋势跟踪(2012年12月3日)
    DAX/PowerBI系列
    DAX基础入门
    (玩起来)DAX/PowerBI系列
    DAX/PowerBI系列
    DAX/PowerBI系列
    DAX/PowerBI系列
    MDX 用Ancestors得到Hierarchy中指定Level的值(附带SCOPE用法之一)
  • 原文地址:https://www.cnblogs.com/bigband/p/13509084.html
Copyright © 2011-2022 走看看