docker
第一章
1、什么是docker
答:docker是一种容器引擎,通过docker可以将软件安装并且配置好以后,做成一个镜像文件。通过这个镜像文件可以快速的安装、配置软件环境
2、3个概念
【docker镜像】:将软件环境安装配置好以后产生的镜像文件,通过它可以快速配置软件环境 【docker仓库】:存放在docker镜像的位置 【docker容器】:通过docker镜像产生的一个实例(一个正在运行的应用程序) 【问题3:配置docker的要求】 centOs的版本必须是7或者是更高版本
3、安装及配置
@@@@@@@【docker的安装以及配置】 1、联网安装docker yum install docker 2、启用docker systemctl start docker 3、设置开机启动(只要Linux一加载,docker自动开启) systemctl enable docker 4、如果要停止docker systemctl stop docker
更改默认配置
@@@@@@@【更改docker的默认配置】 默认情况下,docker类似于maven,需要连接docker仓库下载docker的镜像,但docker仓库的地址在国外,下载比较慢 所以我们一般会改成国内的地址 1、进入etc/docker cd /etc/docker 2、编辑 daemon.json 在{}中增加下代码,默认{}中是空的 在{}中添加如下内容 { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://9cpn8tt6.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],"insecure-registries": ["10.0.0.12:5000"] } 3、停止docker systemctl stop docker 4、启动docker systemctl start docker
4、操作docker镜像
@@@@@@@@操作docker镜像 1、查看当前本地仓库中存在哪些docker镜像 docker images 2、从远程仓库中查询docker镜像 docker search 软件名称 @@@@@@@@@但这种方式是在控制台显示,不够直观,我们可以查询docker的官网进行可视化搜索 @@@@@@@@官网地址: hub.docker.com 3、从远程仓库中拉取docker镜像到本地仓库中 方式1: docker pull 软件名:版本号 docker pull mysql:5.7 方式2:docker pull 软件名 (如果没有指定版本号,系统默认下载最新版本) docker pull nginx 4、删除镜像 docker rmi 镜像id docker rmi 605c77e624dd @@@@@@@注意:如果当前镜像产生了docker容器(一个正在运行的程序)该镜像无法直接删除 删除方式1: 1、先停止docker容器 docker stop 容器id 2、再删除docker容器 docker rm 容器id 3、最后删除docker镜像 docker rmi 镜像id 删除方式2:(强制删除) docker rmi 镜像Id -f
5、操作docker容器
@@@@@@@操作docker容器 (一个正在运行的程序) 1、查看当前有哪些容器正在运行 docker ps ---------------------------这个命令只能查看到正在运行的容器 2、查看所有容器(不论是正在运行的还是已经停止的) docker ps -a 3、启动容器(通过docker镜像运行一个程序) @@@@@@不同的docker镜像启动容器的方式有所有不同,但大体步骤是一样的 docker run -d -p linux的端口号:docker中的端口号 软件名:版本号 docker run -d -p 80:80 nginx docker run---------运行docker容器 -d:表示容器在后台运行 -p linux系统的端口号:docker中的端口号 此处是进行端口映射,通过linux的哪一个端口号映射到docker中的哪一个端口号 例如:启动nginx容器 docker run -d -p 80:80 nginx 例如:启动tomcat容器 docker run -d -p 8080:8080 tomcat:8.5.20 例如:启动redis容器 docker run -d -p 6379:6379 redis 4、停止docker容器(让一个正在运行的容器停止运行) docker stop 容器id 5、让停止运行容器重新运行 docker start 容器id 6、删除容器 docker rm 容器Id 7、如果容器被删除了,如果要再次运行容器,就需要重新通过镜像启动 docker run -d -p 80:80 nginx
6、nginx
@@@@@nginx 1、拉取nginx docker pull nginx 2、产生nginx容器 docker run -d -p 80:80 nginx 3、注册防火墙 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
7、redis
@@@@@配置redis 1、拉取redis docker pull redis 2、产生redis容器 docker run -d -p 6379:6379 redis 3、注册防火墙 firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload
8、tomcat
@@@@@@@@配置tomcat 1、拉取tomcat docker pull tomcat:8.5.20 2、产生tomcat容器 docker run -d -p 9999:8080 tomcat:8.5.20 3、注册防火墙 firewall-cmd --zone=public --add-port=9999/tcp --permanent firewall-cmd --reload
将项目部署到tomcat中
1、在home目录下,创建tomcat目录
mkdir -p /home/tomcat
2、执行命令将docker中tomcat的目录挂载到外部目录中,挂载后操作外部目录就相当于在操作 docker中的目录
docker run -d -p :8080 --name tomcat \ -v /home/tomcat/webapps:/usr/local/tomcat/webapps --privileged=true tomcat:8.5.20
\ :表示换行 --name tomcat: 表示给容器指定别名tomcat -v: 挂载的命令 语法:-v /外部目录:/docker容器的目录 示例: -v /home/tomcat/webapps:/usr/local/tomcat/webapps tomcat:8.5.20:表示是通过哪一个镜像产生容器 -d:表示后台运行 -p 8080:8080:表示端口映射 -p 宿主机端口:docker容器的端口
docker --privileged=true 参数作用 使用该参数,container内的root拥有真正的root权限。 否则,container内的root只是外部的一个普通用户权限
3、部署项目
只需要将打好的war放到设置的webapps目录即可 访问: ip地址:8080/包名
4、如果要进入容器
docker exec -it 容器的Id /bin/bash 或者 docker exec -it 容器的别名 /bin/bash
5、退出容器
exit
6、查看docker进行了哪些端口号的映射
firewall-cmd --list-port
9、MySQL
@@@@@@配置Mysql 1、拉取mysql docker pull mysql:5.7 2、产生mysql容器 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3307:3306 mysql:5.7 docker下的mysql: 初始账号 root 初始密码 root 3、注册防火墙 firewall-cmd --zone=public --add-port=3307/tcp --permanent firewall-cmd --reload
10、rabbitmq
@@@@@@配置rabbitmq 1、拉取rabbitmq docker pull rabbitmq:management 2、产生rabbitmq容器 docker run -d -p 15672:15672 -p 5672:5672 rabbitmq:management 3、注册防火墙 firewall-cmd --zone=public --add-port=15672/tcp --permanent firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --reload
Linux防火墙
@@@@@@需要将端口号在防火墙中注册或者是关闭防火墙 @@@@@@@注册 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload @@@@@关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
服务器
阿里云或腾讯云 **服务器说白了就是一个ip,把当前虚拟机的ip换成买来的ip
1、在阿里云服务器上部署环境、部署项目 2、git的使用
在实际应用中,我们可以使用一个工具简化操作:“宝塔面板”
${pageContext.request.contextPath}---获得当前
git使用
方式1:单独使用git不使用idea 方式2:结合Idea一起使用
方式1:单独使用
1-6
方式1:单独使用git不使用idea的步骤: 1、在当前主机中创建一个目录,作为git的本地仓库(用于存储项目向服务器推送) 2、初始化git仓库 1、cmd进入目录 2、执行命令 git init 3、在工作区中创建新文件 4、查看工作区的文件 git status 红色----------新文件或者是修改后的文件,此文件还没有加入到暂存区 绿色 ---------文件已经加入到了暂存区,但是还没有提交到Master主分支 5、将新文件或者是修改后的文件加入到暂存区 git add . -------------------将所有新文件或者是修改后的文件加入暂存区 6、将暂存区的文件,提交到主分区 git commit -m "第一次提交" 数据一旦提交,通过git stutus就看不见任何内容
7-12
7、在gitee注册账号,并且创建仓库 8、将本地仓库与远程git服务器关联 git remote add origin 仓库地址 git remote add origin https://gitee.com/brucema567/d116_5.git 9、将代码推送到远程的git仓库 git push -u origin master 10、其他用户要从远程仓库下载代码有两种方式: 方式1:clone服务器的代码 git clone 仓库地址 git clone https://gitee.com/brucema567/d116_5.git 方式2:pull方式从服务器拉取 1、创建目录 2、初始化目录 git init 3、关联到远程服务器 git remote add origin https://gitee.com/brucema567/d116_5.git 4、从服务器中拉取项目 git pull origin master 11、如果修改了代码,先add,再Commit,最后push 12、其他用户要拉取最新的代码 git pull origin master