本篇文章配合B站视频进行学习
1.Docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
1.1引言
- 本地运行没问题。上线有问题。
环境不一致 - 死循环,卡顿。
在多用户的操作系统下,会相互影响 - 用户暴增
运维成本过高 - 安装成本过高,过于繁琐。
安装成本过高
1.2Docker由来
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
1.3Docker思想
-
集装箱
会将所有需要的内容放到不同的集装箱中,谁需要环境直接拿到这个集装箱即可 -
标准化
运输标准化:Docker有个码头,所有上传的集装箱都放在这个码头上,当谁需要某个环境,就直接指派搬运到集装箱可以
命令标准化:Docker提供了一系列的命令,帮助我们去获取集装箱操作等等
提供REST的API:衍生处很多的图形化界面:Rancher -
隔离性
Docker在运行集装箱内的内容时,会在Linux的内核中,单独开辟一片空间,这篇空间不会影响到其他程序 -
注册中心(超级码头,上面放的都是集装箱)
-
镜像(集装箱)
2.Docker的基本操作
2.1 安装Docker
#2.1.1下载关于Docker的依赖环境
yum -y install yum-utils device-mapper-persistent-data lvm2
# 2.1.2设置Docker的镜像源
yum -config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 2.1.3安装Docker
yum makecache fast
yum -y install docker-ce
#启动Docker服务
systemctl start docker
#设置为开机自启动
systemctl enable docker
# 测试
docker run hello-world
2.2 Docker的中央仓库
2.2.1 Docker官方的中央仓库,镜像最全,较慢
2.2.2 国内镜像网站:网易蜂巢,Daocloud
2.2.3公司自己搭建
在公司内部会采用私服的方式拉取镜像(添加配置)
需要创建 /etc/docker/daemon.json,并添加如下内容
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["ip:port"]
}
**重启两个服务**
systemctl daemon-reload
systemctl restart docker
2.3 镜像的操作
#1.拉取镜像到本地
docker pull 镜像名称[tag]
#案例
docker pull daocloud.io/library/tomcat:8.5.15-jre8
#2.查看全部本地的镜像
docker images
#3.删除本地镜像
docker rmi 镜像的标识
#4.镜像的导入导出(不规范)
#将本地的镜像导出
docker save -o 导出镜像 镜像id
#加载本地的镜像文件
docker load -i 镜像文件
#修改镜像名称
docker tag 镜像id 新镜像名称:版本
2.4 容器的操作
#1.运行容器
docker run 镜像的标识|镜像名称[:tag]
#常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
#-d:代表后台运行容器
#-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
#--name 容器名称:指定容器名称
#2.查看正在运行的容器
docker ps [-qa]
#-q:查看全部的容器,包括没有运行
#-a:只查看容器得到的标识
#3.查看容器的日志
docker logs -f 容器id
#-f:可以滚动查看日志的最后几行
#4.进入到容器内部。
docker exec -it 容器id bash
#5.删除容器(删除容器前,需要先停止容器)
#停止指定容器
docker stop 容器id
#停止所有的容器
docker stop $(docker ps -qa)
#删除指定容器
docker rm 镜像id
#删除所有容器
docker rm $(docker ps -qa)
#6.启动容器
docker start docker
3.Docker应用
3.1准备SSM工程
ssm.war下载
https://download.lixian.fun/web_project/Jpress-0.4.0.tar.gz将上面连接的tar下载下来,解压,在wars目录里面将jpress-web-newest.war重命名为ssm.war就行了
#下载
wget -c https://download.lixian.fun/web_project/Jpress-0.4.0.tar.gz
#解压
tar -zxvf Jpress-0.4.0.tar.gz
#重命名
mv jpress-web-newest.war ssm.war
3.2准备MySQL容器
#运行MySQL容器
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
3.3准备Tomcat容器