1:Docker是什么?
Docker就是一个类似于Linux系统、只不过这个linux系统基本的命令基本上全部被阉割了
Docker还可以看成是一个虚拟机
这个虚拟机和传统的虚拟机相比、命令变小了、体积变小了
这个虚拟机的运行要依赖于原生态的Linux系统 这个原生态的Linux系统可以认为是一个宿主机
Docker-----------------运行在宿主机上的 Docker的使用要依赖于原生态的Linux系统
2:Docker能干什么?
1:服务的安装(不用安装了 官方都已经做好了)
2:项目的部署
3:服务的编排
4:在一个宿主机上实现多节点部署
5:可以实现动态的扩容和缩容
3:Docker的安装(Linux系统)
4:Docker的基本的命令的使用
镜像:简单的说就是比人使用linux系统 已经按照好了一些服务、这些服务有一个统一的名字 这个名字就叫做镜像
Linux+MySQL
Linux+JDK
统一称为镜像
镜像有国内的、也有国外的 默认是从国外的镜像上下载 但是在安装的时候、可以指定使用国内的镜像
阿里巴巴的源
…
我们在进行项目部署的时候 也要生成镜像、我们一般是在别人的镜像的基础上生成新的镜像
容器:镜像在运行之后的实例 就称为容器 这个容器里面就可以运行很多服务了
docker的基本命令
docker images:查看当前本地一共有哪些镜像
docker pull 镜像的名字:版本号 从远程的库中下载某一个镜像
docker run -it 镜像的名字:版本号 (普通的启动 基本没有参数)
docker run -d(后台运行) -p(端口映射) --name(服务取名字) xiaobobo 镜像的名字:版本号 启动一个服务
docker ps -a :查看当前正在运行的容器
docker rm 容器的id :删除一个容器
docker stop 容器的id :停止一个容器
docker exec -it 容器的id /bin/bash :进入某一个容器
docker search 镜像的名字 :模糊搜索一个镜像
docker commit 容器的id 新容器的名字:新容器的版本
docker inspect 镜像的id :查看某一个镜像的详情信息
docker rmi 镜像的id :删除一个镜像
5:Docker来搭建MySQL的环境
6:Docker搭建Tomcat的环境
7:Docker搭建JDK的环境
8:Dockerfile的使用
Dockerfile用来干嘛的呢?
docker commit :就是在原有镜像的基础上 来手动的安装一些服务之后 生成一个新的镜像 docker commit命令
Dockerfile是用来干嘛的呢?简单的说也是用来构建我们的新的镜像的 只不过 这个构建的镜像是通过 文件描述来完成的
解读
FROM centos:7 :从那个基础镜像上来进行构建
MAINCONTAINER xiaobobo :表示的是构建者的信息
ADD 文件的名字 路径 :将本地当前工作目录下的某一个文件 复制到容器 并进行解压
COPY 文件的名字 路径 功能和上面一样只是不进行解压
ENV JAVA_HOME /usr/local/jdk1.8.0_20 ENV设置的是环境变量
ENV PATH
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH 引用环境变量设置给PATH
EXPOSE:这个命令仅仅是告诉开发者容器对外暴露的这个端口是什么 没有实际的意义
CMD [“命令”] 容器启动的时候执行的命令 如果有多个CMD那么后面的会把前面的覆盖掉
ENTRYPOINT [“命令”] 容器启动的时候执行的命令 如果有多个ENTRYPOINT的话那么 都会执行
docker run -v ./webapps:/usr/local/tomcat/webapps -d -p 8080:8080 tomcat:7777
说明:-v:表示的是文件的挂载命令
挂载的意思:将本地的路劲映射到服务器的某一个目录下 一般做数据的持久化
FROM centos:7
2 MAINTAINER xiaobobo
3 COPY jdk-8u20-linux-x64.gz /usr/local/
4 COPY apache-tomcat-8.5.41.tar.gz /usr/local/
5 RUN tar -zxvf /usr/local/jdk-8u20-linux-x64.gz && \
6 tar -zxvf /usr/local/apache-tomcat-8.5.41.tar.gz
7 ENV JAVA_HOME /usr/local/jdk1.8.0_20
8 ENV PATH $JAVA_HOME/bin:$PATH
9 EXPOSE 8080
10 CMD ["/usr/local/apache-tomcat-8.5.41/bin/catalina.sh","run"]
项目的部署
FROM centos:7
2 ADD apache-tomcat-8.5.41.tar.gz /usr/local/
3 ADD jdk-8u20-linux-x64.gz /usr/local
4 COPY Day1901_Deployee_01.war /usr/local/apache-tomcat-8.5.41/webapps/
5 ENV JAVA_HOME /usr/local/jdk1.8.0_20
6 ENV PATH $JAVA_HOME/bin:$PATH
7 EXPOSE 8080
8 CMD ["/usr/local/apache-tomcat-8.5.41/bin/catalina.sh","run"]
9:docker-compose的使用
9.1:docker搭建一个基于war部署的环境
9.2:搭建一个jar文件的运行环境
9.3:搭建一个基Docker基于Nginx代理Tomcat访问我们的MySQL的这样的一个环境(动静分离)