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://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 学习笔记(一)的更多相关文章
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- Docker学习笔记总结
Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/ 一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
随机推荐
- Oracle帐户被锁了,如何解锁
原文链接:https://jingyan.baidu.com/article/25648fc144b76b9191fd0087.html 背景:Oracle帐户在密码被连续输入错误3次的情况下就会锁定 ...
- PHP str_word_count() 函数
实例 计算字符串 "Hello World!" 中的单词数: <?php高佣联盟 www.cgewang.comecho str_word_count("Hello ...
- Skill 返回一个数字list的大小排序信息
https://www.cnblogs.com/yeungchie/ code procedure(ycSortList(numlist) prog((size sort) foreach(main ...
- 6.15 省选模拟赛 老魔杖 博弈论 SG函数
这道题确实没有一个很好的解决办法 唯一的正解可能就是打表找规律 或者 直接猜结论了吧. 尽管如此 在此也给最终结论一个完整的证明. 对于70分 容易发现状态数量不大 可以进行暴力dp求SG函数. 原本 ...
- 5.20 省选模拟赛 求和 组合数的性质 EGF CRT
LINK:求和 绝妙的一道题目.没做绝对亏了. 对于第一个subtask 考虑直接递推出组合数. 对于第二个subtask 考虑EGF 设两个EGF 都只含偶数项指标且系数为1的那种 一个到n一个到m ...
- bzoj 3782 上学路线 卢卡斯定理 容斥 中国剩余定理 dp
LINK:上学路线 从(0,0)走到(n,m)每次只能向上或者向右走 有K个点不能走求方案数,对P取模. \(1\leq N,M\leq 10^10 0\leq T\leq 200\) p=10000 ...
- Spark Streaming高吞吐、高可靠的一些优化
分享一些Spark Streaming在使用中关于高吞吐和高可靠的优化. 目录 1. 高吞吐的优化方式 1.1 更改序列化的方式 1.2 修改Receiver接受到的数据的存储级别 1.3 广播配置变 ...
- .Net小白的第一篇博文
说起来也比较惭愧,5个月之前,我早已创建了博客园账号,那时候的我雄心壮志,给自己定下了 很多目标.现在回想起来,除了体重的增长,头发的稀疏,似乎这段时间的消逝并没有带给我什么见识上的成长.哈哈,想必大 ...
- 【SCOI2008】奖励关 题解(状压DP+期望)
题目链接 题目大意:给定$n$个宝物,每次随机抛出一个宝物,奖励分数为$p_i$.但如果选这个宝物必须选过它的前置宝物集合.共进行$K$轮问最优策略下的期望. $n\leq 15,-10^6\leq ...
- rabbitMQ结合spring-boot使用(1)
从这一节开始我们进入rabbitMQ的实战环节,项目环境是spring-boot 加maven.首先让我们创建一个spring-boot项目,然后引入web依赖和 rabbitMQ的依赖 <de ...