Docker

Docker

  • 集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。
  • 标准化:
  • 运输的标准化:Docker所有容器都集中保存在仓库中,需要时去仓库中搜索即可。
  • 命令的标准化:Docker提供了一些列的命令,帮助我们去获取集装箱等等操作。
  • 提供了REST的API:衍生出了很多的图形化界面,Rancher。
  • 隔离性:Docker在运行集装箱内的内容时,会在Linux的内核中,单独的开辟一片空间,这片空间不会影响到其他程序。
  • 中央仓库|注册中心:超级码头,上面放的就是集装箱
  • 镜像:就是集装箱,也可以说镜像相当于类
  • 容器:运行起来的镜像,也可以说容器是对象
Docker 安装

1、安装依赖环境
yum -y install yum-utils device-mapper-persistent-data lvm2
2、设置镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、开始安装
yum makacache fast
yum -y install docker-ce
4、启动Docker,并设置为开机自启
systemctl enable docker
5、测试docker(docker run hello-world)
docker run hello-world

Docker的中央仓库
  • Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。
    https://hub.docker.com/
  • 国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。
    https://c.163yun.com/hub#/home
    http://hub.daocloud.io/ (推荐使用)

配置私服

1、在/etc/docker创建一个daemon.json文件
2、追加如下内容
{
“registry-mirrors”: [“https://registry.docker-cn.com”],
“insecure-registries”: [“ip:port”]
}

3、重启daemon-reload 和 Docker服务

systemctl daemon-reload
systemctl restart docker

Docker 镜像命令

1、docker pull 镜像地址[:tag] //镜像地址中去找 (tag是版本下同)
举个栗子:docker pull daocloud.io/library/tomcat:8.5.15-jre8
2、docker images //查看本地的全部镜像
3、docker rmi 镜像id/镜像名称:tag //删除镜像
4、docker save -o 保存的路径(路径后边加名字) 镜像id/镜像名称 //将镜像保存到本地的文件
5、docker load -i 本地文件 //将本地文件导入到docker镜像
6、docker tag 镜像id 新镜像名:tag //修改镜像名称

Docker容器命令

1、运行容器
docker run -d(后台运行) -p 宿主机端口:容器端口 --name 容器名称 镜像id/镜像名称:tag
2、查看容器
docker ps //查看正在运行的容器
docker ps -a //查看所有的容器
3、查看容器日志
docker logs -f 容器名称/容器id
4、进入到容器内部
docker exec -it 容器名称/容器id [/bin/]bash
5、复制宿主机文件到容器
docker cp 文件名 容器名称/容器id:容器内部路径
6、查看所有容器的id
docker ps -qa
7、停止/删除 全部容器
docker stop/rm$(docker ps -qa)
8、容器的启动/重启/停止/删除
docker start/stop/restart/rm 容器名称/容器id

Docker应用
Docker安装Tomcat

运行Tomcat容器,为部署SSM工程做准备
docker run -d -p 8080:8080 --name tomcat 镜像id/镜像名称:tag(私服/daocloud.io/library/tomcat:8.5.15-jre8)

Docker安装MySQL

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root (daocloud.io/library/mysql:5.7.4)

部署SSM工程
  • 修改SSM工程环境,设置为Linux中Docker容器的信息
  • 通过Maven的package重新打成war包
  • 讲Windows下的war包复制到Linux中
  • 通过docker命令将宿主机的war包复制到容器内部
  • 测试访问SSM工程
数据卷

为了部署SSM的工程,需要使用到cp的命令将宿主机内的ssm.war文件复制到容器内部。
数据卷:将宿主机的一个目录映射到容器的一个目录中。
可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

创建数据卷

创建数据卷之后,会默认存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
docker volume create 数据卷名称

查看数据卷详情

查看数据卷的详细信息,可以查询到存放路径,创建时间等等
docker volume inspect 数据卷名称

查看全部数据卷

docer volume ls

删除数据卷

docker volume rm 数据卷名称

容器映射数据卷

映射有两种方式:

  • 通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。
  • 通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。
    通过数据卷名称映射
    docker run -v 数据卷名称:容器内部的路径 镜像id
    通过路径映射数据卷
    docker run -v 路径:容器内部的路径 镜像id
Dockerfile自定义镜像

我们可以从中央仓库下载一个镜像,也可以自己手动去制作一个镜像,需要通过Dockerfile去指定自定义镜像的信息

DockerFile

创建自定义镜像就需要创建一个Dockerfile,如下为Dockerfile的语言

from: 指定当前自定义镜像依赖的环境
copy: 将相对路径下的内容复制到自定义镜像中
workdir: 声明镜像的默认工作目录
run: 执行的命令,可以编写多个
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)
举个例子,制作SSM容器镜像,而且ssm.war要放在Dockerfile的同级目录下
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps

通过Dockerfile制作镜像

编写完Dockerfile后需要通过命令将其制作为镜像,并且要在Dockerfile的当前目录下,之后即可在镜像中查看到指定的镜像信息,注意最后的.(点)

docker build -t 镜像名称[:tag] .
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值