Docker介绍
Docker容器引擎是基于虚拟花技术上升级的一个操作系统级虚拟化 是运行在一个系统上不同进程,并将这些进程封装在一个容器内 被称之为容器技术(Docker是其中之一)
Docker安装
查看Docker是否安装:yum list installed | grep docker 安装依赖:yum install yum-utils 安装资源:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装资源:dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
安装docker命令:yum install --allowerasing docker-ce 卸载docker命令:yum remove docker 查看安装:docker -v
docker启动服务命令:systemctl start docker 或者 service docker start docker关闭服务命令:systemctl start docker 或者 service docker stop docker重启服务命令:systemctl restart docker 或者 service docker restart 查看docker运行状态:systemctl status docker 查看docker系统信息:docker info
Docker使用
docker不是容器,而是容器管理的引擎
docker运行机制(得到服务----下载镜像----启动该镜像的容器----容器运行下载的镜像程序)
搜索镜像命令:docker search 镜像名(tomcat) 下载镜像:docker pull 镜像名tomcat 运行镜像:docker run tomcat -d 显示本地镜像:docker images
启动镜像程序后需要和本地系统做映射 停止容器:docker ps(这个命令之后会有容器的names) 停止:docker stop 容器的names 本地系统映射:docker -d -p 8080:8080 tomcat 作用是用tomcat的8080映射到本地的8080端口让外网可以访问
进入容器内命令:docker exec -it 容器的names bash
Docker核心组件
Docker分为三个核心要素:镜像,容器,仓库
命令操作
镜像是一个只读的模板,可以用来创建Docker容器 一个镜像只包含一个完整的centos操作系统环境,这个环境只安装了用户需求的应用程序
镜像的组成结构 镜像是由许多层文件系统叠加构成的 最下面是一个引导文件系统的bootfs 第二层是一个root文件系统 root文件系统通常是某种操作系统,centos等
镜像的操作命令 下载镜像:docker pull 镜像名:版本号 查看已下载的镜像:docker images 【镜像名】 运行镜像:docker run 镜像名 删除镜像:docker rmi 镜像名 删除容器:docker rm 容器names 查看容器信息:docker inspect 容器names 停用全部容器:docker stop ${docker ps -q} 删除全部容器:docker rm ${docker ps -aq} 停用并删除所有容器:docker stop ${docker ps -q} & docker rm ${docker ps -aq}
安装使用Mysql docker pull mysql docker run -p 3306:3306 -e MYSQL_DATABASE=database -e MYSQL_ROOT_PASSWORD=123456 -d mysql -p指定端口 mysql端口3306映射本机端口3306 -e指定环境变量 DATABASE表示创建数据库 ROOT_PASSWORD表示root账户的密码设置为123456 -d 后台启动mysql 进入mysql容器内:docker exec -it 容器names bash 登陆mysql:mysql -uroot -p123456
将linux的文件移动到容器内:docker cp linux内的文件的路径文件名 容器names:容器内的路径目录名
自定义镜像
Dockerfile用于构建docker镜像,Dockerfile文件是由多行命令语句组成
Dockerfile分为四部分 基础镜像信息 维护者信息 镜像操作信息 容器启动时执行命令
自定义jdk镜像
FROM centos:latest
MAINTAINER MyOS
ADD jdk-8u321-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_321
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
CMD java -version
FROM(表示继承的镜像) MAINTAINER(指定维护者,作者) ADD (将一个文件复制到容器内的路径目录中) ENV(配置环境变量) EXPOSE(告诉docker服务容器暴露的端口号比如tomcat的8080,在启动时需要-p映射端口) EUN(在当前镜像基础上执行指定命令,并提交为新的镜像,当命令较长可以用\来换行) CMD(启动容器时执行命令,只能执行一个cmd命令)
构成镜像:docker build -t MyOS . -t给镜像起的名字 .表示当前目录下有个Dockerfile文件
阿里云镜像仓库地址:dev.aliyun.com
Docker部署SpringBoot项目
在自己的当前的目录下有SpringBoot项目的jar包
使用自定义镜像的方法
FROM java
MAINTAINER spring-java
ADD spring-1.8.0.jar /opt
RUN chmod +x/opt/spring-1.8.0.jar
CMD java -jar /opt/spring-1.8.0.jar
保存新镜像 让镜像持久化 命令:docker commit 镜像id 新镜像的名字 让容器内的数据得到保存
|