初识Docker及初步搭建
安装步骤:基于Contos-7安装
1:linux环境搭建
2:安装指令 yum install -y yum-utils device-mapper-persistent-data lvm2
device-mapper-persistent-data |vm2 表述数据存储的驱动包
3:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(yum-config-manager --add-repo)修改安装源 因为国外比较慢
4:yum makecache fast 自动检测那个安装源是最快的
5:yum -y install docker-ce 安装docker社区版 ce 代表社区 如果是ee代表企业版
6:如果安装完成 启动 docker service docker start
7:检查docker 版本 docker version
8: docker pull hello-world 从docker远端服务器拉取hello-world 的镜像信息 (人家镜像名字就叫hello world)
a:因为我们国内和国外网络通讯不是一直都很稳定,经常会出现下载不下来的现象 ,这种情况阿里为我们提供了加速代理
9:启动该镜像 docker run hello-world (如果下面出现了hello from docker 证明你已经启动成功!)
10:阿里镜像加速设置:登录阿里云官网 aliyun.com 然后 搜索镜像加速服务 他会让你登录你的阿里账号 登录进去后 左边最下面有个 《镜像加速器》点开 会给你展示各种服务器的加速地址
11:下面会有镜像加速器配置信息
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 (下面直接复制粘贴 回车就好)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://klyds0ko.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
12:为了验证我们是否真的加速了 tomcat 比较大 我们另起 窗口 拉去 tomcat镜像 docker pull tomcat 看下拉取速度即可
13:docker如何进行项目打包并且发布到服务器上三层关系(应用程序 - docker engine(docker引擎 例如java 的jvm)-可用资源(虚拟机或者物理机)) 应用协议是http
docker 工作原理:Docker为了管理容器方便,它定义一个容器中只能运行一个进程, 但实际上容器跟虚拟机类似,它是可运行多个进程的,只是为了管理方便,限制容器中只能运行一个进程
14:daoker常用指令:docker pull 镜像名 从远端拉取 镜像信息 ,docker images 查看本地镜像 docker run 镜像名 创建容器,启动应用 docker ps 查看正在运行的镜像 docker rm (-f) 容器id 删除指定的容器 docker rmi(-f)镜像名 删除指定镜像
15:快速部署tomcat
a:指定tomcat 版本号 docker pull tomcat :对应tomcat版本名称 例如:docker pull tomcat:8.5.60-jdk8
b:启动 tomcat ; docker run tomcat(如果不加tag版本号默认是使用高量的lastest 版本) 如果指定 docker run tomcat:版本号
注意:启动时候有时候会遇见Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
此时需要:1: # vim /usr/lib/sysctl.d/00-system.conf 2:添加以下代码 net.ipv4.ip_forward=1
3:# systemctl restart network 重启 。4:重启docker服务即可
16:启动完以后如何保证能够 链接到你启动的服务,这边docker 提供了ip映射:
docker run -p 8000:8080 tomcat (tag名称) 8000是宿主机的开放端口,8080是镜像容器的端口
17:启动完成后 宿主机(虚拟机)IP:8000 例如 :192.168.X.X:8000
如果访问出现404
1.docker ps 查看当前开启的镜像
2.docker exec -it af1a3dbdb0bd(启动的tomcat容器的容器id) /bin/bash
3.进入后 直接 ls -al 指令 查询所有目录信息
4.如果显示total 0,我们就需要把webapps.dist中的内容复制到webapps文件夹下 或者 如果出现 webapps 和webapps.dist 俩个文件 需要把webapps 改成别的名字,把webapps.dist改为 webapps 重新访问即可(404原因 因为docker镜像更改了目录文件名)
18:有个弊端 run 方法是独占运行,我们需要让进程后端运行
docker run -p 8000:8080 -d tomcat 这样我们就可以做别的操作,有时候会出现Error response from daemon 等错误 这个时候需要我们重启
systemctl restart docker
原因:docker服务启动时定义的自定义链DOCKER由于某种原因被清掉重启docker服务及可重新生成自定义链DOCKER
19: netstat -tulpn 查询后台运行端口
20:docker file 指令:
exec:对应容器中执行命令 -it :采用交互方式执行命令
docker create 创建容器但是不运行容器,必须docker start 和docker run 的区别就是 后者会自动执行start
docker kill 是杀死进程 docker stop 是停止但是不杀死,当重新start 的时候前者会创建新的进程,后者不会会重新启动后者
docker pause 让阻塞, docker unpause 开启放开。
docker restart 重启启动
docker build -t 机构/镜像名<:tags版本号> dockerfile目录
from centos //基于基准镜像 centos:lastest
from search //不依赖任何基准镜像 base image
from tomcat:9.0.2-jdk-openJdk
《maintainer 组织名 》《lable version =”1.0“》《lable description =”测试“ 》
workdir /usr/local
workdir /usr/local/newdir //自动创建
add hello // 复制到根路径
add test.tar.gz //添加到根目录并且解压
add 除了复制,还具备添加远程文件功能
21:env 环境变量设置
ENV JAVA_HOME /usr/local/openjdk8
RUN ${JAVA_HOME} /bin/java -jar test.jar ///使用环境变量可以全局访问,易于维护
22:run-构建时运行规范
Run yum install -y -vim //shell 命令格式
Run [“yum”,“install”,"-y",“vim”] //exec 命令格式
23:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v3ZgQC7f-1607417833181)(C:\Users\hgtiand\AppData\Roaming\Typora\typora-user-images\image-20201127104649162.png)]
第一步:引入 基础镜像
第二步:run 指令执行安装插件
第三步:workdir 切换当前工作路径
第四步:add 将redis文件加入上步操作的路径下
第五步:切换路径到src下
第六步: run 方法给当前镜像中安装 make 和make install 指令集
第七步:重新切换当前路径
第八步:给上一步路径加入 配置文件
第九步:对外暴露 7000端口
第十步:启动时候执行 内部俩个指令或者文件
24: bridge 网桥
docker network create -d bridge my-bridge //创建网桥
docker network connect 网桥名称 web(容器名称) //绑定网桥
同一个网桥绑定的容器之间互联互通
25:数据共享
通过设置-v挂载宿主机目录
docker run --name 容器名 -v 宿主机路径:容器挂载路径 镜像名
例子:docker run --name t1-v/usr/webapps:/usr/localtomcat/webapps tomcat
创建共享容器
docker create --name webpage(名称) -v /webapps:/tomcat/webapps tomcat /bin/ture
共享挂载点
docker run --volumes -from webpages --name t1 -d tomcat
26:docker compose 容器编排工具(单机)
docker-compose up -d //对文件进行解析执行