Chrome
1、插件安装 一、VMware安装二、CentOS的安装三、Linux命令
1、用户
①查看用户信息②创建一个用户③删除一个用户④用户口令的管理⑤查看当前登录的用户⑥切换用户 2、目录
①查看目录②切换目录③显示当前目录④创建目录⑤删除目录 3、文件
①查看文件内容②创建文件③复制/拷贝文件④移动文件⑤删除文件 4、打包与拆包5、其它命令
①查看进程快照②管道 |③显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段 6、VIM编辑器
①命令模式:②输入模式③底线命令模式 7、文件权限
①mode方式②数字方式 8、网络
①主机名操作②查询系统完整信息③IP地址操作④域名映射⑤网络服务管理⑥防火墙设置 9、关机 四、Docker
1、Docker基础命令
①Docker安装、卸载、启动②镜像③容器④网络模式⑤配置数据卷⑥配置数据卷容器 2、Docker应用部署
①MySql部署②Tomcat部署③Nginx部署④Redis部署⑤FastDFS部署⑥dockerUI 3、Docker镜像
①容器转镜像②自定义centos7镜像③发布springboot项目 4、服务编排Docker Compose
①安装Docker Compose②卸载Docker Compose③编排nginx+springboot 5、Dokcer私有仓库
①私有仓库搭建②将镜像上传至私有仓库③从私有仓库拉取镜像
Chrome 1、插件安装下载地址:https://www.cnplugins.com/down/down.php?fn=1503/www.cnplugins.com_nhdogjmejiglipccpnnnanhbledajbpd.crx&aid=36894&typeid=16
安装流程:
1、重命名下载文件后缀为zip,使用360压缩解压
2、打开Chrome,更多工具——扩展程序——加载已解压的扩展程序
vue.js devtools
JSON-handle
一、VMware安装[VMware-workstation-full-16.0.0-16894299.exe](E:Java第8章 企业开发环境第1节 Linux安装介绍工具VMware)
[vm注册码.txt](E:Java第8章 企业开发环境第1节 Linux安装介绍工具VMware)
安装过程参考 [VMware的安装文档](E:Java第8章 企业开发环境第1节 Linux安装介绍参考文档)
卸载VMware
第一步:软件卸载
第二步:扫描C盘,删除vmware开头的文件夹和文件
第三步:使用CCleaner软件修复注册表
二、CentOS的安装[CentOS-7-x86_64-DVD-1511.iso](E:Java第8章 企业开发环境第1节 Linux安装介绍工具CentOS7)
安装过程参考 [CentOS-7的安装文档](E:Java第8章 企业开发环境第1节 Linux安装介绍参考文档)
三、Linux命令 1、用户 ①查看用户信息#语法 cat /etc/passwd - root:用户名 - x :密码 :已经加密 ,密码存放在 vi /etc/shadow 密码文件 - 0: 账号id ,userId - 0: 组id ,group id②创建一个用户
# 创建一个用户 #语法:useradd 选项 用户名 #选项: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 #案例1: user add lina02③删除一个用户
# 删除一个用户 #语法:userdel 选项 用户名; 其中-r是常用的选项,表示将用户的主目录一起删除。 #案例: userdel -r lina02④用户口令的管理
用户口令的管理其实就是用户密码的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的命令是 passwd 。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
# 用户口令的管理 #语法:passwd 选项 用户名 可使用的选项: -l 锁定口令,即禁用账号。 -u 口令解锁。 -d 使账号无口令。 -f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,切换到用户lina,则下面的命令修改该用户自己的口令:
PS:linux操作系统中密码部分不予显示,所以看起来是空白的,实际已经输入了密码。
如果是超级用户,可以用下列形式指定任何用户的口令:
普通用户修改自己的口令时,passwd命令会要求先输入原口令,验证后再要求用户输入两遍新口令,如 果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小 写字母和数字,并且应该与姓名、生日等不相同。
⑤查看当前登录的用户whoami⑥切换用户
su • 用法1:su 用户名 • 用法2:su 回车(切换到root) 特点:管理员切换普通用户不需要密码,普通用户之间切换需要密码 管理员登入(#),普通用户登入($)2、目录 ①查看目录
Linux系统当中, ls 命令可能是最常被运行的。
语法:
ls :查看当前路径下的文件名称
ls -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
ls -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
ls -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
ll: 等价于ls -l
ls -al :目录下的所有文件列出来(含属性与隐藏档)
②切换目录
cd是Change Directory的缩写,这是用来变换工作目录的命令。
语法:
cd [相对路径或绝对路径]
cd /usr/local/
#使用绝对路径切换到 local 目录
cd ~
# 表示回到自己的家目录,亦即是 /root 这个目录
cd ..
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
cd .
# 当前目录
cd -
#返回到之前的目录
③显示当前目录
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
语法: pwd④创建目录
mkdir (make directory)用来创建新的目录。
语法:mkdir [-mp] 目录名称
-m :配置文件的权限喔!直接配置,不需要看默认权限的脸色
-p :直接将所需要的目录(包含上一级目录)递归创建起来!
查看帮助 mkdir --help
示例:/tmp底下尝试创建数个新目录看看: cd /tmp mkdir kkb <==创建一名为 kkb 的新目录 mkdir test1/test2/test3/test4 mkdir: cannot create directory `test1/test2/test3/test4': No such file or directory <== 没办法直接创建此目录啊! mkdir -p test1/test2/test3/test4 加了这个 -p 的选项,可以自行帮你创建多层目录!⑤删除目录
rmdir 命令用来删除空的目录
语法: rmdir [-p] 目录名称 -p :连同上一级『空的』目录也一起删除3、文件 ①查看文件内容
cat 查看所有内容
语法:cat 由第一行开始显示文件内容
more 一页一页的显示文件内容
一页一页翻动
语法: more 文件名称
例如:more /etc/man_db.config
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
less 一页一页翻动
语法: less 文件名称
例如:less /etc/man.config
....(中间省略)....
: <== 这里可以等待你输入命令!
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
q :离开 less 这个程序;
②创建文件
语法:touch 创建一个空白的普通文件
#示例: [root@centoslina01 /]# cd kkb [root@centoslina01 kkb]# touch lina01.txt [root@centoslina01 kkb]# ll total 0 -rw-r--r--. 1 root root 0 Mar 11 10:08 lina01.txt [root@centoslina01 kkb]#
写入内容
echo 把内容重定向到指定的文件中 ,有则打开,无则创建
语法: echo '内容'>文件名称 覆盖模式 echo '内容'>>文件名称 追加模式
#示例: [root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt [root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt [root@centoslina01 kkb]# cat lina01.txt jiaobaoyu [root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt [root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt [root@centoslina01 kkb]# cat lina02.txt jiaobaoyu jiaobaoyu [root@centoslina01 kkb]#③复制/拷贝文件
语法: cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若clear问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
④移动文件
mv 可以移动文件与目录,或修改名称。
语法:
mv [-fiu] source destination
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
示例:复制一文件,创建一目录,将文件移动到目录中
cd /tmp
cp ~/.bashrc bashrc
mkdir mvtest
mv lina mvtest
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2
⑤删除文件
rm 可以移除文件或目录。
语法: rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
4、打包与拆包
一般Linux 上常用的压缩方式是选用tar 将许多文件打包成一个文件,再以 gzip压缩命令压缩成紧
xxx.tar.gz(或者xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip 压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar 文件
打包:tar -cvf xxx.tar 要打包的文件或目录的列表,用空格隔开
打包并且压缩:tar -zcvf xxx.tar.gz 要打包的文件或目录的列表,用空格隔开
解压:tar -xvf xx.tar
tar -zxvf xx.tar.gz -C /usr/kkb 注意-C大写,防止拆包解压的路径找不到
5、其它命令
①查看进程快照
ps : - axu 显示当前进程的快照
查看Java进程:ps -axu | grep java
查看MySQL进程 ps -axu | grep mysql
管道是Linux中比较重要且常用的一个内容,其作用是将一个命令的输出作为另一个命令的输入,组合使用。
ls --help | more #分页查看帮助信息,按q退出③显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段
netstat - atulnp -a :all,表示列出所有的连接,服务监听,Socket资料 -t :tcp,列出tcp协议的服务 -u :udp,列出udp协议的服务 -n :port number, 用端口号来显示 -l :listening,列出当前监听服务 netstat -anp|grep 3306 netstat -unltp|grep fdfs6、VIM编辑器
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
①命令模式: 用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被
当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。i
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
②输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
③底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
:w保存
:wq保存退出
:q!强退
7、文件权限
①mode方式
语法:chmod who opt per file
who:u g o a(all)(u 用户user ,g用户组group,o其他用户,a所有用户默认)
opt:+添加某个权限 –取消某个权限 =赋予权限
per:r w x X
示例: chmod u=rwx,g=r lina03.txt chmod u+x,g+w,o+w test.log //r 读,w 写 x 执行②数字方式
语法:chmod XXX file
rwx rw- r–-
421 420 400
7 6 4
0无权限,1表可执行=x,2表写入权限=w,4表可读权限=r
例如:-rwxr--r--. 1 root root 10 Oct 16 02:55 yhp.log
用户权限=rwx=4+2+1=7
所属组权限=r--=4+0+0=4
其他用户权限=r--=4+0+0=4
组合:744
修改权限:
都加入写入权限:+2
给用户组加入写入权限:+2
给其他用户加入可执行权限:+1
chmod 765 yhp.log
8、网络
①主机名操作
hostname :显示主机名 hostname XXX :修改主机名,不推荐,临时生效 永久生效修改主机名需要修改/etc/sysconfig/network文件②查询系统完整信息
uname -a :显示完整的系统信息③IP地址操作
查看IP地址:ip addr
修改IP地址:修改/etc/sysconfig/network-scripts/
重启网络服务:service network restart
④域名映射修改 /etc/hosts文件
⑤网络服务管理查看网络服务状态:systemctl status network 启动网络服务:systemctl start network 停止网络服务:systemctl stop network 重启网络服务:systemctl restart network 设置开机启动:systemctl enable network⑥防火墙设置
查看防火墙状态: systemctl status firewalld 启动防火墙: systemctl start firewalld 关闭防火墙: systemctl stop firewalld 重启防火墙: firewall-cmd --reload 查询防火墙服务是否开机启动:systemctl is-enabled firewalld 开机时启用防火墙服务:systemctl enable firewalld 开机时禁用防火墙服务:systemctl disable firewalld 查询已经启动的服务列表:systemctl list-unit-files|grep enabled 查询启动失败的服务列表:systemctl --failed 防火墙开放端口号 firewall-cmd --zone=public --add-port=22122/tcp --permanent 查看对外开发端口 iptables-save9、关机
• 常用的关机指令:shutdown • 重启,关机:reboot,halt,poweroff
• Shutdown • t 添加秒数,几秒后关机 • k 不是真关机,而是发出告警信息 • r 在系统服务都停止后,重启 • h 在系统服务都停止后,关机 • f 关闭并且开机以后,强行略过磁盘检查 • F 重启后,强制进行进行磁盘检查 • c 取消已经在进行的shutdown指令内容 • shutdown –h now——现在马上关机 • shutdown –h 12:00——在12:00关机 • shutdown –h +10——在十分钟后关机 • shutdown –r now——现在重启 • shutdown –r +30 ‘the system will reboot’——发出告警信息30分钟后重启 • shutdown –k now ‘this system will reboot’——发出告警信息后马上重启
• 服务等级 • init 0 //关机 • init 6 // 重启 • init 3 //纯文本模式 • init 5 //含有图形接口四、Docker 1、Docker基础命令 ①Docker安装、卸载、启动
安装过程参考[docker.md](E:Java第11章 容器化第1节 docker)
# 1、安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看 uname -r # 2、确保 yum 包更新到最新, yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令 yum update # No packages marked for update 错误 执行下面的命令 yum clean all # 卸载旧版本(如果安装过旧版本的话) yum remove docker docker-common docker-selinux docker-engine # yum被packagekit占用 systemctl stop packagekit systemctl disable packagekit # 3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 4、 设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 5、查看所有的Docker版本 yum list docker-ce --showduplicates | sort -r # 6、安装指定版本的Docker yum install docker-ce-17.12.1.ce # 7、 安装docker,出现输入的界面都按 y yum install -y docker-ce # 8、 查看docker版本,验证是否验证成功 docker -v
卸载docker
# 查询安装过的包 yum list installed | grep docker # 删除安装包: 语法 : yum -y remove [Docker名称] # 删除镜像/容器等 rm -rf /var/lib/docker
镜像加速器
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中 镜像加速器就可以看到你的专属地址了:
新建/etc/docker/daemon.json,并在/etc/docker/daemon.json,文件末尾增加如下内容
{
"registry-mirrors": ["https://nzvi92k4.mirror.aliyuncs.com"]
}
启动docker服务:
systemctl start docker
停止docker服务:
systemctl stop docker
重启docker服务:
systemctl restart docker
查看docker服务状态:
systemctl status docker
设置开机启动docker服务:
systemctl enable docker
查看docker占用空间的情况
docker system df②镜像
查看镜像: 查看本地所有的镜像
docker images docker images –q # 查看所用镜像的id
搜索镜像:从网络中查找需要的镜像
docker search 镜像名称 docker search redis #查找redis镜像
拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 lastest。
如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。——hub.docker.com
docker pull 镜像名称 docker pull redis #下载最新版本redis docker pull redis:5.0 #下载5.0版本redis
删除镜像: 删除本地镜像
docker rmi redis:5.0 #删除5.0版本redis docker rmi 镜像id # 删除指定本地镜像 docker images -q #查看所有的镜像列表 docker rmi `docker images -q` # 删除所有本地镜像 docker image prune 命令删除 悬壶镜像(虚悬镜像,当镜像被新的镜像覆盖时候,老版本镜像名称会变成 none)③容器
查看容器
docker ps # 查看正在运行的容器 docker ps –a # 查看所有容器 docker ps -as # 查看所有容器并显示容器大小
创建并启动容器
docker run 参数
参数说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
–name:为创建的容器命名。
docker run -it --name=c1 centos:7 /bin/bash #创建交互式容器 docker run -id --name=c2 centos:7 #创建守护式容器
注意:交互式容器,exit后容器自动关闭,守护式容器会在后台执行
进入正在运行的容器
docker exec -it c2 /bin/bash #进入容器
停止容器
docker stop 容器名称
启动容器
docker start 容器名称
删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker rm 容器名称
查看容器信息
docker inspect 容器名称
查看容器应用日志
docker logs [options] 容器
复制宿主机文件到容器
#复制index文件到c_nginx下的/usr/share/nginx目录 docker cp index c_nginx:/usr/share/nginx
为容器安装vim
apt-get install vim 提示: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package vim 这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。 等更新完毕以后再敲命令:apt-get install vim命令即可。④网络模式
使用自定义网络模式可实现容器间IP互通和网络名称互通
查看网络模式
docker network ls
创建网络模式
docker network create 网络名称
查看容器具体IP信息
docker network inspect 网络名称
为容器连接新的网络模式
docker network connect 网络名称 容器名称
断开网络
docker network disconnect 网络名称 容器名称
移除自定义网络模式
docker network rm 网络名称
**注意:**网络模式移除成功会返回网络模式名称,如果通过某个自定义网络模式创建了容器,则该网络模式无法删除
重建docker0网桥
解决docker容器启动时候无法映射端口的问题
pkill docker iptables -t nat -F ifconfig docker0 down brctl delbr docker0 service docker restart⑤配置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
注意:
- 容器目录必须是绝对路径如果目录不存在,会自动创建可以挂载多个数据卷两个容器挂载同一个数据卷,在一个容器中修改文件,看到另一个容器也跟着
#创建启动c3数据卷容器,使用 –v 参数 设置数据卷,这里没有指定宿主机目录,默认生成一个宿主机目录 docker run –it --name=c3 –v /volume centos:7 /bin/bash #使用 –-volumes-from 参数 设置数据卷 docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash2、Docker应用部署
创建容器时添加参数 --restart=always 后,当docker重启时,容器自动启动。
docker update --restart=always canal
在启动时如果没有添加这个参数,可使用docker container update --restart=always 容器名字进行修改
①MySql部署#搜索mysql镜像 docker search mysql #拉取mysql镜像 docker pull mysql:8.0.26 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysql #创建容器 docker run -id --name=legou_mysql -p 3306:3306 --network=legou-network -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.26 #使用端口扫描工具扫描是否开放了3306端口,如没开放,需要重建docker0网桥(docker网络模式) #使用navicat测试连接,navicat会报1251的错,出现这个问题的原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,所以使用Navicat连接MySQL会报错。 #进入容器,操作mysql docker exec -it legou_mysql /bin/bash mysql -uroot -p #更改加密方式,输入命令 ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #注意这个%,%表示让所有的ip都可以访问,mysql默认是只有localhost才能访问,我们这里顺手修改了让所有ip都能够访问,如果不修改,当navicat远程连接mysql的时候,会报2003的错误。当然,如果navicat和mysql在一台电脑上,你也可以把%替换为localhost: ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改密码,输入命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #最后一步,刷新,注意有分号 FLUSH PRIVILEGES;②Tomcat部署
#搜索tomcat镜像 docker search tomcat #拉取tomcat镜像 docker pull tomcat #在/root目录下创建tomcat目录用于存储tomcat数据信息 mkdir ~/tomcat cd ~/tomcat #创建容器 docker run -id --name=c_tomcat -p 9000:8080 --network=custom_network -v $PWD:/usr/local/tomcat/webapps tomcat③Nginx部署
#搜索nginx镜像
docker search nginx
#拉取nginx镜像
docker pull nginx
#在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
#在~/nginx/conf/下创建nginx.conf文件
vim nginx.conf
#粘贴下面内容
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
#切换到~/nginx目录下执行如下命令
docker run -id --name=c_nginx
-p 80:80
-p 81:81
-p 82:82
--network=host
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf
-v $PWD/conf.d:/etc/nginx/conf.d
-v $PWD/logs:/var/log/nginx
-v $PWD/html:/usr/share/nginx/html
nginx
#修改Nginx 的配置⽂件:~/nginx/conf.d/port.conf
upstream tomcat-huike {
server 192.168.220.12:8080;
server 192.168.220.12:8081 weight=2;
server 192.168.220.12:8082;
}
server {
listen 81; # 监听的端⼝
server_name www.xzk.com; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/index;# 根⽬录
proxy_pass http://tomcat-kkb;
index index.html; # 默认⾸⻚
}
error_page 500 502 503 504 /50x.html; # 错误⻚⾯
location = /50x.html {
root html;
}
}
server {
listen 82; # 监听的端⼝
server_name regist.xzk.com; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/regist;# 根⽬录
index regist.html; # 默认⾸⻚
}
error_page 500 502 503 504 /50x.html; # 错误⻚⾯
location = /50x.html {
root html;
}
}
④Redis部署
#搜索redis镜像 docker search redis #拉取redis镜像 docker pull redis:5.0 #创建容器,设置端口映射 docker run -id --name=legou_redis --network=legou-network -p 6379:6379 redis:5.0 #使用外部机器连接redis ./redis-cli.exe -h 192.168.220.12 -p 6379 keys * set name lxs get name⑤FastDFS部署
#拉取镜像 docker pull morunchang/fastdfs #运行tracker docker run -id --name legou-tracker -p 22122:22122 --network=legou-network morunchang/fastdfs sh tracker.sh #运行storage #group name是组名,即storage的组 如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名 #docker run -d --name storage --net=host -e TRACKER_IP=⑥dockerUI:22122 -e GROUP_NAME= morunchang/fastdfs sh storage.sh docker run -d --name legou-storage -p 23000:23000 --network=legou-network -e TRACKER_IP=192.168.40.128:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh #修改nginx的配置 docker exec -it legou-storage /bin/bash vim /etc/nginx/conf/nginx.conf location ~ /M00 { root /data/fast_data/data; ngx_fastdfs_module; #禁止缓存 add_header Cache-Control no-store; } #重启storage容器 docker restart legou-storage
#拉取镜像 docker pull uifd/ui-for-docker #启动dockerUI容器 docker run -id --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker 4257409fb5d9c12ee417bca1633145857678620f60ca390f2a5923ed38ffccec #浏览器访问 http://192.168.40.128:9000/3、Docker镜像 ①容器转镜像
# 创建tomcat镜像 docker run -id --name=c_tomcat -p 8080:8080 -v $PWD:/usr/local/tomcat/webapps tomcat # 进入tomcat镜像 docker exec -it c_tomcat /bin/bash #创建a.txt b.txt cd ~ touch a.txt b.txt #容器转镜像 docker commit 28b8d4dc9744 lxs_tomcat:1.0 #压缩镜像 docker save -o lxs_tomcat.tar lxs_tomcat:1.0 #删除原来镜像 docker rmi lxs_tomcat:1.0 #从压缩文件加载镜像 docker load -i lxs_tomcat.tar #产生镜像 docker run -it --name=new_tomcat lxs_tomcat:1.0 /bin/bash #进入查看内容 docker exec -it c_tomcat /bin/bash #可以看到a.txt b.txt存在,而webapps/test不存在②自定义centos7镜像
mkdir ~/docker-files
cd ~/docker-files
vim centos_dockerfile
#具体内容
#定义父镜像
FROM centos:7
#定义作者信息
MAINTAINER lxs
#执行安装vim命令
RUN yum install -y vim
#定义默认的工作目录
WORKDIR /usr
#定义容器启动执行的命令
CMD /bin/bash
#通过dockerfile构建镜像
#docker bulid –f dockerfile文件路径 –t 镜像名称:版本 .(-f:镜像文件、-t:新镜像名、. 寻址路径)
docker build -f ./centos_dockerfile -t lxs_centos:1 .
③发布springboot项目
#具体内容
#定义父镜像
FROM java:8
#定义作者信息
MAINTAINER lxs
#将jar包添加到容器
ADD springboot.jar app.jar
#定义容器启动执行的命令
CMD ["java","-jar","app.jar"]
#通过dockerfile构建镜像
docker build –f ./springboot_dockerfile –t app .
4、服务编排Docker Compose
①安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以 编译好的二进制包方式安装在Linux系统中。 curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 设置文件可执行权限 chmod +x /usr/local/bin/docker-compose # 查看版本信息 docker-compose -version②卸载Docker Compose
# 二进制包方式安装的,删除二进制文件即可 rm /usr/local/bin/docker-compose③编排nginx+springboot
#创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
#编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
#创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
#在./nginx/conf.d目录下 编写app.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080/hello;
}
}
#在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up -d # -d表示已守护模式启动
5、Dokcer私有仓库
①私有仓库搭建
# 1、拉取私有仓库镜像
docker pull registry
# 2、启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json
vim /etc/docker/daemon.json
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip
{"insecure-registries":["私有仓库服务器ip:5000"]}
{"insecure-registries":["192.168.220.12:5000"]}
# 5、重启docker 服务
systemctl restart docker
docker start registry
②将镜像上传至私有仓库
# 1、标记镜像为私有仓库的镜像 docker tag centos:7 192.168.220.12:5000/centos:7 # 2、上传标记的镜像 docker push 192.168.220.12:5000/centos:7③从私有仓库拉取镜像
#拉取镜像 docker pull 192.168.220.12:5000/centos:7



