Docker部署

dockers的优势
1 环境不一致的问题
2 避免在多用户的操作系统下会相互影响
3 运维成本过高
4 学习成本过高
5 安装软件成本过高


dockers的思想
1 集装箱
会将所有需要的内容放到不同的集装箱,谁需要这些环境就直接到这个集装箱
2 标准化
运输标准化:docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境
            就直接指派大海豚取搬运这个集装箱就可以了
命令标准化:docker提供了一系列的命令,帮助我们获取集装箱的操作
提供了rest的api:衍生出很多的图形化界面,rancher
3 隔离性
docker在运行集装箱的内容时,会单独开辟一块空间

注册中心(超级码头,上面放的就是集装箱)
镜像。(集装箱)
容器。(运行起来的镜像)


安装docker
1 下载安装docker的依赖环境
yum -y install yum-utils device-mapper-persistent-data lvm2
2 设计一下docker的镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3 安装docker
yum makecache fast
yum install docker-ce
4 启动docker
启动docker服务 systemctl start docker
设置开机自动启动 systemctl enable docker
测试拉取hello-word镜像并且运行 docker run hello-wold


docker中央仓库加速器--------------
/etc/docker/daemon.json
{
    "registry-mirrors": ["https://****.mirror.aliyuncs.com"]
    "insecure-registries":["ip:port"] #使用公司内部的私服
}
systemctl daemon-reload
systemctl restart docker

镜像的操作
1 拉取镜像到本地 docker pull 镜像名称[:tag]
docker pull daocloud.io/library/tomcat:8.5.15-jre8
2 查看全部的镜像
docker images
3 删除本地镜像
docker rmi  镜像的标识imageId
4 镜像的导入导出
导出镜像:docker save -o 导出的路径 镜像id    
加载镜像:docker load -i 镜像id 
修改镜像名称:docker tag 镜像id 新镜像名称:版本

容器的操作
1 运行容器
简单操作docker run 镜像的标识 | 镜像名称[:tag]
常用参数
docker run -d -p --name 容器名称 镜像的标识 | 镜像名称[:tag]
-d 代表后台运行
-p 宿主机端口(linux端口):容器端口(例如tomcat容器端口8080):为了映射当前Linux的端口和容器的端口
--name 指定容器的名称
docker run -d -p 8081:8080 --name tomcat imageid

2 查看正在运行的容器
docker ps [-qa]
-a 查看全部的容器,包括没有运行的
-q 只查看容器的标识id


查看容器的日志
docker logs -f 容器id
-f 可以滚动查看日志的最后几行


进入到容器内部
docker exec -it 容器id [/bin/]bash
退出 exit

删除容器(删除容器前需要停止容器)
停止指定的容器:docker stop 容器id   
停止全部的容器:docker stop $(docker -qa)
删除指定的容器:docker rm 容器id
删除全部的容器:docker rm $(docker -qa)

启动容器
docker start 容器id

将宿主机中的war包复制到容器中
docker cp 文件名称 容器id:容器内部命令

数据卷
创建数据卷: docker volume create 数据卷名称
创建数据卷默认存放目录: /var/lib/docker/volumes/数据卷名称/_data
查看数据卷的详细信息: docker volume inspect 数据卷名称 
查看全部数据卷:docker volume ls
删除数据卷:docker volume rm 
应用数据卷:
当你映射数据卷时,如果数据卷不存在,docker会帮你自动创建 会将容器内部自带的文件 存储在默认的路径中
docker run -v 数据卷名称:容器内部的路径 镜像id
直接指定一个路径作为数据卷存放的位置
docker run -v 路径:容器内部的路径 镜像id 

docker自定义的镜像
中央仓库的镜像也是docker用户自己上传过去的
创建一个dokerfile文件,并且指定自定义镜像信息
#Dockerfile中常用的内容
from:指定当前自定义镜像依赖的环境
copy:将相对路径下的内容复制到自定义镜像中
workdir:声明镜像的默认工作目录
cmd:需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
通过docker的命令制作镜像:docker build -t 镜像名称:[tag] .

docker-compose
只需要docker-compose.yml文件去维护就可以了
https://github.com/docker/compose/releases/download/1.24.1/docer-compose-Linux-x86_64
将docke-compose名称修改一下并修改为可执行文件 chmod 777 docker-compose
将文件移动到/usr/local/bin/ 并配置环境变量 可以在任意目录下使用docker-compose
vi /etc/profile   export PATH=$JAVA_HOME:/usr/local/bin:$PATH
source /etc/profile   
测试任意目录下使用docker-compose


docker-compose管理mysql和tomcat
yml文件以key:value方式来指定配置信息
多个配置以换行+缩进的方式来区别
version: "3.1"
services:
  mysql:            #服务名称   docker image
    restart: always #只要docker启动,
    image: /li*****/mysql:5.7.4 #指定从仓库拉取镜像路径
    container_name: mysql #指定容器的名称  docker ps
    ports
      - 3306:3306 #端口隐射
    enviroment:
      MYSQL_ROOT_PASSWORD: root# 指定数据库密码
      TZ: Asia/Shanghai#指定时区
    volumes
      - /opt/docker_mysql/date:/var/lib/mysql #映射数据卷
      
  tomcat:
    restart: always
    ****************************

在使用docker-compose命令时,默认会在当前目录下找docker-compose.yml文件
管理容器 docker-compose up -d
删除 docker-compose down
开启|关闭|重启 docker-compose start|stop|restart
查看日志 docker-compose logs -f
管理容器 docker-compose -ps


docker-compose与dockerfile配合使用
docker-compose.yml文件
version: "3.1"
services:
  ssm:
    restart: always
    build:          #构建自定义镜像
      context: ../  #指定dockerfile文件路径
      dockerfile: Dockerfile 指定dockerfile文件名称
    image:
    *****************************
dockerfile文件
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps

可以直接启动基于docker-compose up -d 存在直接运行存在的
docker-compose up -d --build  运行前重新构建 或者docker-compose build

docker CI CD
原始部署步骤
1 将项目通过maven进行编译打包
2 将文件上传到指定的服务器中
3 将war包放到tomcat的目录中
4 通过dockerfile将tomcat和war包转成一个镜像,由docker-compose去运行容器
CI:持续集成:编写代码时,完成了一个功能后,立即提交到git仓库中,将项目重新构建并且测试
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程治铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值