一、历史演进
物理机时代 -》虚拟机时代 -》容器化时代
二、容器化应用场景
2.1、标准化的迁移方式.
2.2、统一的参数配置.
2.3、自动化部署.
2.4、应用集群监控.
2.5、开发与运维之间的沟通桥梁.
三、Docker介绍
3.1、开源的应用容器引擎,基于Go语言开发.
3.2、容器是完全使用沙箱机制,容器开销及低.
四、Docker安装
前期准备工作开始
4.1、yum install -y yum-utils device-mapper-persistent-data |vm2
4.2、yum-config-manager --add-repo http://mirrors.aliyun.com/doc...
4.3、yum makecache fast
前期准备工作结束
4.4、yum -y install docker-ce (客户端与服务端均安装好)
4.5、service docker start (docker服务启动)
4.6、docker version (查看docker版本)
4.7、docker pull hello-world (从远程中央仓库中下载镜像)
4.8、docker run hello-world (启动hello-world容器)
五、阿里云镜像服务
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://....mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
六、Docker是容器化平台
6.1、Docker是提供应用打包,部署与运行应用的容器化平台.
七、Docker名词与概念
7.1、镜像:镜像是文件,是只读的,提供了运行程序完整的软硬件资源,是应用程序的"集装箱".
7.2、容器:是镜像的实例,由Docker负责创建,容器之间彼此隔离.
八、docker常用命令
8.1、docker pull 镜像名<:tags> -从远程仓库抽取镜像.
8.2、docker images - 查询本地镜像.
8.3、docker run 镜像名<:tags> -创建容器,启动应用.(前端启动)
8.4、docker ps - 查看正在运行中的镜像.
8.5、docker rm <-f> 容器id - 删除容器.
8.6、docker rmi <-f> 镜像名:
8.7、docker run -p 8000:8080 tomcat (-p表示:宿主机与docker容器映射;8000:代表宿主机,8080:代表容器).
8.8、docker run -p 8000:8080 -d tomcat(-d:代表后台启动)
8.9、docker stop (停止容器)
netstat -tulpn (查看监听的端口)
cat /proc/version (查看操作系统版本)
九、容器内部结构
9.1、容器中会带一个迷你版linux操作系统,所以可以在容器里面可以执行shell脚本.
9.2、docker exec [-it] 容器id 命令.
exec在对应容器中执行命令
-it采用交互方式执行命令
实例:docker exec -it 0738ed2fe68b /bin/bash
十、Docker inspect [OPTIONS] NAME|ID [NAME|ID...]
10.1、获取容器/镜像的元数据
比如:容器ID,容器名词,容器状态,容器镜像,挂载情况,网络信息。。。
10.2、获取容器的元数据
docker inspect 容器名称|容器ID
docker inspect mysql
docker inspect a7257e0aa936
docker inspect 镜像名称:镜像版本
docker inspect mysql:8.0.22
十一、DockerFile
10.1、DokerFile是一个包含用于组合镜像的命令的文本文档.
10.2、Docker通过读取Dockerfile中的指令按步自动生成镜像.
10.3、docker build -t 机构/镜像名<:tags> Dockerfile目录.
docker build -t forever.com/mywebapp:1.0 first-dockerfile/
10.4、FROM:设置基准镜像.
10.5、MAINTAINER:代表某个人或者某个机构维护.
10.6、WORKDIR:代表切换(类似shell CD)容器的工作目录.
10.7、ADD(复制的意思 把dockerfile文件同级的文件copy到容器下的目录中):代表把指定的文件复制到镜像中的目录下.
10.8、CMD 用于默认执行的命令,如Dockerfile中出现多个CMD,则只有最后一个被执行.
10.9、ENTRYPOINT(入口)用于在容器启动时执行命令.