Docker概
Docker出现
产品 开发—>上线 应用环境 应用配置发布
运维 版本更新 集群发布服务
打包项目环境 环境不兼容
java -->apk --发布(应用商店)–下载–安装
思想 集装箱
JRE 多个应用 打包 相互隔离
通过隔离机制 服务器利用极致
Docker 历史
dotCloud
pass 的云计算 LXC(LinuX Containers)容器技术
开源
Docker安装
系统内核3.10版本以上
#查看内核版本
# uname -r
4.18.0-348.el8.0.2.x86_64
]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="8.5 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8.5:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"
安装
帮助文档
# 1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2、需要安装的包
yum install -y yum-utils
# 3、设置镜像仓库
# 官方镜像(默认国外)
# 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的索引包 makecache fast yum -y update
#yum源冲突添加--allowerasing
yum install docker-ce docker-ce-cli containerd.io --allowerasing
#centos8默认使用podman代替docker,所以需要containerd.io,那我们就安装一下就好了
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
# 4、安装docker相关的源 docker-ce社区版 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
# 5、启动docker
systemctl start docker
# 6、使用docker version 测试安装成功
docker version
7、测试安装成功
docker run hello-world
# 8、查看一下下载的这个 hello-world 镜像
[root@192 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
了解:卸载docker
# 1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2、删除资源
rm -rf /var/lib/docker
# rm -rf /var/lib/containerd docker的默认工作路径!
阿里云镜像加速
1 、登陆阿里云找到容器加速器
2、找到镜像加速地址
3 测试配置使用
1、sudo mkdir -p /etc/docker
2、sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://k4wcczgl.mirror.aliyuncs.com"]
}
EOF
3、sudo systemctl daemon-reload
4、sudo systemctl restart docker
回顾hello-world 的流程
Docker底层原理
docker 是一个Client-server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
Docker 为什么笔VM快
- Docker 有着比虚拟机更少的抽象层
- docker利用的是宿主主机的内核,VM需要的Guest OS。
Docker常用命令
帮助命令
#docker info docker信息
#docker --help docker帮助命令
#docker -version 查看docker版本
镜像命令
# doccker pull 容器名 拉取镜像
# doccker push 容器名 上传镜像
# doccker run 容器名 运行镜像
# doccker images 容器名 查看镜像
容器命令
docker run -d -it -p 3344:8080 镜像名 /bin/bash #启动容器
# -d 后台运行
# -p 暴露端口 宿主机端口:容器端口
# -v voloume 数据卷双向绑定 docker run -it -v 主机目录:容器目录
匿名挂载,具名挂载
#-v 容器内路径 匿名挂载
#-v 卷名:容器内路径 具名挂载
#-v /宿主机路径:容器内路径 指定路径挂载
常用其他命令
Docker镜像
容器数据卷
DockerFile
Docker网络原理
IDEA整合Docker
Docker Comose
Docker Swarm
==CI/CD jenkins=
DockerFile构建过程
DockerfFle介绍
dockerfile 是用来构建docker镜像的文件!命令参数脚本
构建脚本
- 编写一个docker文件
- docker build 构建成为一个镜像
- docker run运行镜像
- docker push 发布镜像(DockerHub、阿里云镜像)
官方镜像都是基础包,很多功能没有,我们自己构建自己的镜像!
基础知识
- 每个保留关键字(指令)必须大写字母
- 执行从下到上顺序执行
- .#表示注释
- 每条指令会创建提交一个新的镜像层,并提交。
DockeFile是面向开发的,发布项目,做镜像,编写dockerfile文件
DockerFile : 构建镜像。
Dockerimages: 通过DockerFile构建生成的镜像,发布运行产品。
Docker容器:容器就是镜像运行起来提供服务器。
DockerFile指令
FROM #基础镜像
MAINTAINER #镜像是谁写的
RUN #构建镜像的时候需要运行的命令
ADD #步骤 Tomcat镜像,这个Tomcat压缩包 添加内容
WORKDIR #镜像的工作目录
VOLIME #挂载的目录
EXPOST #保留端口配置
CMD #指定容器运行的时候要运行的命令,只有最后一个生效,可被替代
ENTRYPOINI #指定容器运行的时候要运行的命令,可以追加命令。
ONBUILD #当构建一个被继承 DockerFile这个时候会运行ONBUILD的指令 出发指令
ENV #构建的时候设置环境变量
DBMs