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

Docker 学习笔记(一)的更多相关文章

  1. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  2. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  3. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  4. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  5. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  6. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  7. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  8. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  9. docker学习笔记-1

    docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...

  10. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

随机推荐

  1. Oracle帐户被锁了,如何解锁

    原文链接:https://jingyan.baidu.com/article/25648fc144b76b9191fd0087.html 背景:Oracle帐户在密码被连续输入错误3次的情况下就会锁定 ...

  2. PHP str_word_count() 函数

    实例 计算字符串 "Hello World!" 中的单词数: <?php高佣联盟 www.cgewang.comecho str_word_count("Hello ...

  3. Skill 返回一个数字list的大小排序信息

    https://www.cnblogs.com/yeungchie/ code procedure(ycSortList(numlist) prog((size sort) foreach(main ...

  4. 6.15 省选模拟赛 老魔杖 博弈论 SG函数

    这道题确实没有一个很好的解决办法 唯一的正解可能就是打表找规律 或者 直接猜结论了吧. 尽管如此 在此也给最终结论一个完整的证明. 对于70分 容易发现状态数量不大 可以进行暴力dp求SG函数. 原本 ...

  5. 5.20 省选模拟赛 求和 组合数的性质 EGF CRT

    LINK:求和 绝妙的一道题目.没做绝对亏了. 对于第一个subtask 考虑直接递推出组合数. 对于第二个subtask 考虑EGF 设两个EGF 都只含偶数项指标且系数为1的那种 一个到n一个到m ...

  6. bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp

    LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=10000 ...

  7. Spark Streaming高吞吐、高可靠的一些优化

    分享一些Spark Streaming在使用中关于高吞吐和高可靠的优化. 目录 1. 高吞吐的优化方式 1.1 更改序列化的方式 1.2 修改Receiver接受到的数据的存储级别 1.3 广播配置变 ...

  8. .Net小白的第一篇博文

    说起来也比较惭愧,5个月之前,我早已创建了博客园账号,那时候的我雄心壮志,给自己定下了 很多目标.现在回想起来,除了体重的增长,头发的稀疏,似乎这段时间的消逝并没有带给我什么见识上的成长.哈哈,想必大 ...

  9. 【SCOI2008】奖励关 题解(状压DP+期望)

    题目链接 题目大意:给定$n$个宝物,每次随机抛出一个宝物,奖励分数为$p_i$.但如果选这个宝物必须选过它的前置宝物集合.共进行$K$轮问最优策略下的期望. $n\leq 15,-10^6\leq ...

  10. rabbitMQ结合spring-boot使用(1)

    从这一节开始我们进入rabbitMQ的实战环节,项目环境是spring-boot 加maven.首先让我们创建一个spring-boot项目,然后引入web依赖和 rabbitMQ的依赖 <de ...