Linux基础 -docker&宝塔&java环境

Linux 教程 | 菜鸟教程

(84条消息) ❤肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤【建议收藏】_小小明-代码实体的博客-CSDN博客

面试官:请给我列举一些最常用的linux命令(建议收藏) - 掘金 (juejin.cn)icon-default.png?t=N7T8https://juejin.cn/post/7280456650502307875

Linux 基本操作命令

查看进程:

Ps -ef | grep (redis) //查看具体进程

jps //查看所有

查看及文件目录的命令:

cd、ls、du

屏幕清除

clear(完全清除,无法向上翻页查看之前信息)

ctrl+L(屏幕清除,开启新行,依旧可以向上翻页查看之前信息)

查看系统时间

date

查看当前目录

pwd

切换目录

cd 目录

目录:

~ :登录用户的家目录(用户创建的初始目录)

./ :当前目录

:上级目录

列出目录

ls [选项] [文件]

例:ls -lah

解释:

-l:列出详细信息

-a:不隐藏任何项目

-h:人性化显示,文件大小可以已k单位显示

新建目录

mkdir 目录

删除文件

rm -rf 文件名

改文件名

mv [选项] 源文件 目标文件

新建文件

touch 文件

复制文件

cp [选项] 源文件 目标文件

cp -r webapps.dist/* webapps

查看文件

cat 正常文件查看

tac 从最后一行开始显示

nl 显示是会输出行号

more less less 可以往前翻页

文件压缩解压:gzip、bzip2

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

gzip使用格式如下:


gzip[选项]  被压缩文件
gzip -d 解压文件
gzip -r 压缩文件

压缩用法:tar zcvf 压缩包包名 文件1 文件2 …

例如: tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 压缩成 test.tar.gz

新建虚拟机

详情请查看:

(131条消息) Liunx系统创建_linux创建_LusicLuck的博客-CSDN博客

 开机启动vmware并自动启动虚拟机

一、开机自启脚本

       右键VMware快捷方式 - 属性:

 目标里原来的值为"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"

在后面添加【 -x "E:\system\VMware\CentOS-7-111\CentOS-7-64.vmx"】

PS:“目标”内容说明   整体公式为:"VMware路径" -x "虚拟系统文件路径"

第一个地址为VM的安装程序exe的完整路径 第二个地址为虚拟机的vmx完整路径。
【空格】-x【空格】,这是命令参数,按需添加,具体如下:
        -x 启动虚拟机        -X 启动虚拟机并全屏        -n 开启新窗口

例如: "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x "D:\centos701\centos701.vmx"

为了确认这个语句是否正确,最好先在控制台或【运行】上试一遍。如果能够成功则进行下一步。

二、设置开机自启

1、按windows+R,输入shell:startup,回车

2. 将快捷方式粘贴进来

完成 

Linux 连接宝塔

linux 连接宝塔要求:
1.linux是启动状态
2.电脑有没有开启 VMWare DHCP service 和  VMWare NAT service
宝塔里面的容器都是开机自启的

宝塔Linux面板的安装配置以及基本使用教程(超详细)_宝塔linux面板官网安装什么系统_SoloVersion的博客-CSDN博客

宝塔官网地址:宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板

在这里插入图片描述

新建虚拟机之后不要配置和安装任何东西  

下载宝塔Linux( 7.9.0)面板

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

5. 出现下面界面则表示已经安装成功了,并且要记住宝塔内外网面板地址和账号密码,后面登录宝塔面板会用到

在这里插入图片描述

 安装好 即可访问生成的网址 访问宝塔Linux面板 可以一键安装各种所需项目环境

部署java项目

准备工作:

先核实项目所需版本与部署环境版本一致 如操作系统不支持,32 位操作系统

查询系统位数命令: getconf LONG_BIT

一:创建java运行环境:

  1. 在linux中直接安装jdk8, tomcat8, nginx ,mysql5.7

安装MySQL

1 查看是否已经安装 Mysql

rpm -qa | grep mysql

如果你查看出来有东西,可以使用下面命令将其删除

rpm -e --nodeps 文件名

1.2 提升权限

由于 MySQL 安装过程中,会通过 MySQL 用户在 /tmp 目录下新建 tmp_db 文件,所以需要给 /tmp 目录较大的权限:


chmod -R 777 /tmp

  1. 创建docker 在内部创建环境

(131条消息) linux centos docker 基本使用_centos docker使用_淋雨一直走~的博客-CSDN博客

docker常用命令

# 启动docker服务
systemctl start docker

# 停止docker服务
systemctl stop docker

# 重启docker服务
systemctl restart docker

# 查看docker服务状态
systemctl status docker

# 设置开机启动docker服务
systemctl enable docker

# 查看docker概要信息
docker info
# 查看docker帮助文档
docker --help

、查看、删除、拉取、搜索镜像

docker images: 查看镜像
docker search: 搜索镜像
docker pull: 拉取/下载镜像
docker rmi: 删除镜像

# 查看镜像可以使用如下命令:
docker images

# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称

# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:
docker pull 镜像名称

# 拉取centos 7
docker pull centos:7
# 拉取centos 最后版本镜像
docker pull centos:latest

# 按照镜像id删除镜像
docker rmi 镜像ID
# 删除所有镜像(谨慎操作)
docker rmi `docker images -q`

删除指定目录下的所有文件
 rm -rf /test/demo/*

复制指定目录下的所有文件到另外的目录
cp -rf  /test/demo/.  /aa/demo2/

Docker:安装mysql容器:

(131条消息) Docker 安装MySQL 5.7(超详细文图说明及MySQL配置)_docker mysql5.7_Mr. Loong的博客-CSDN博客

# 拉取MySQL 5.7镜像

docker pull centos/mysql-57-centos7

# 创建mysql5.7容器

docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
- -p 代表端口映射,格式为 宿主机映射端口:容器运行端口
- -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的远程登陆密码(如果是在容器中使用root登录的话,那么其**密码为空**)

端口号可以按需修改

# 进入mysql5.7容器

docker exec -it mysql5.7 /bin/bash 

# 登录进入容器里面的mysql

mysql -u root -p

# 查看容器ip;如果以后要内部连接该mysql,如其他容器中要连接mysql容器的mysql的时候,可以使用如下命令查看IP

docker inspect mysql5.7

Linux 文件基本属性

  • chown (change owner) : 修改所属用户与组。

  • chmod (change mode) : 修改用户的权限。

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:


[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录

  • 当为 - 则是文件;

  • 若是 l 则表示为链接文档(link file);

  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。

其中, r 代表可读(read)w 代表可写(write)x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

各权限的分数对照如下:

  • r:4

  • w:2

  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= --- = 0+0+0 = 0

变更权限的指令 chmod 的语法是这样的:


 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。

  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

Linux没有ens33解决方案

在虚拟机上操作Linux系统查看IP的时候,发现没有ens33或者eth0了

(51条消息) Linux没有ens33解决方案(亲测有效)_KeepC_的博客-CSDN博客_没有ens33

systemctl stopNetworkManager 临时关闭

systemctl disableNetworkManager 永久关闭网络管理命令

systemctl startnetwork.service 开启网络服务

Docker快速入门

🎉 Docker 简介和安装 - Docker 快速入门

将java项目部署到docker容器中运行

linux centos docker 基本使用

在Docker中使用Redis的步骤详解

获取镜像

使用如下命令拉取官方最新版本的镜像:

1

docker pull redis:latest

. 查看本地镜像

使用如下命令来查看是否已安装了Redis镜像:

1

docker images

在图中我们可以看到我们已经安装了最新版本(latest)的 Redis 镜像。

. 运行容器

我们给容器起一个名字 docker-redis,同时公开 6379 端口(Redis 默认值),使用如下命令创建并运行容器:

1

docker run -d -p 6379:6379 --name docker-redis redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

可以通过如下命令查看容器的运行信息来判断容器是否运行成功:

1

docker ps

还可以通过如下命令查看日志输出:

1

docker logs docker-redis

6. 在容器中运行Redis CLI

接着我们通过在容器中运行 redis-cli 来连接 redis 服务。我们将在运行中的容器中用 -it 选项来启动一个新的交互式会话,并使用它来运行 redis-cli:

1

docker exec-it docker-redis /bin/bash

我们已经连接到容器,现在让我们运行 redis-cli:

1

root@517350f4f2bb:/data# redis-cli

现在我们可以运行一些基本的 Redis 命令:

7. 清理容器

让我们停止 docker-redis 容器并删除:

1

2

docker stop docker-redis

docker rmdocker-redis

docker下安装配置MongoDB

https://blog.csdn.net/qq_28038487/article/details/104017084

下载镜像
$ docker pull mongo

创建配置文件挂载目录

# 创建目录
$ mkdir -p /var/lib/mongo/configdb
$ mkdir -p /var/lib/mongo/logs
$ mkdir -p /var/lib/mongo/db
# 配置权限
chmod -R a+rwx /var/lib/mongo/

运行镜像

docker run --name mongodb -p 27017:27017 -v /usr/local/docker/mongodb/db:/data/db -v /usr/local/docker/mongodb/configdb:/data/configdb -v  /usr/local/docker/mongodb/log:/data/log -d mongo --auth


# -v 挂载目录,防止 docker 停止导致数据丢失
# -p 端口映射, 使外部可以访问
--auth开启权限认证

注:当mongo启用auth选项时,用户需要创建数据库帐号,访问时根据帐号信息来鉴权,而数据库帐号信息就存储在admin数据库下

查看运行日志

$ docker logs -f mongo

# 查看 mongo 日志
$ tail -fn200 /var/lib/mongo/logs/mongod.log

 创建 mongod.conf
cat /var/lib/mongo/conf/mongod.conf

storage:
  dbPath: /data/mongo/db
  # indexBuildRetry: true # 已失效
  journal:
    enabled: true
    commitIntervalMs: 100

# where to write logging data.
systemLog:
  path: /data/mongo/logs/mongod.log
  logAppend: false
  logRotate: rename
  destination: file

# network interfaces
net:
  port: 27017
  bindIp: 192.168.220.51  #按需修改
  bindIpAll: true

进入容器,登录数据库

$ docker exec -it mongo /bin/bash
# 命令行会切换到容器内

# 使用 mongo 客户端  
$ mongo 或者 mongosh

# 获取数据库列表
$ show dbs;

mongoDB原生使用

#新增
db.tb_person.insert({person_name: "陈六", age: 16})
#普通修改
db.tb_person.update({age: 16}, {$set: {person_name: "张三"}})
-- 普通删除
db.tb_person.remove({person_name: "张三"})
--  查询person_name=张三 或者 年龄 18
db.tb_person.find({$or:[{person_name: "张三"},{age:18 }]}) 

-- 分页查询  以年龄升序排序 跳过第1条数据,查询后面2条数据
db.tb_person.find().sort({age:1}).limit(2).skip(1)  

-- 查询年龄小于等于21的数据,以年龄降序排序
db.tb_person.find({age:{$lte:21}}).sort({age:-1}) 

重新启动mongodb

net stop mongodb;
net start mongodb;

创建用户

1.使用admin数据库创建超级用户

db.createUser(
    {
        user:"root",
        pwd:"root",
        roles:["root",db:"admin"]
    }
)

2.创建一个业务数据库普通用户   直接通过root用户操作更方便

db.createUser({user: "user",pwd: "123456",
roles: [ { role: "readWrite", db: "test" } ]} )

3.查看创建的用户

show users 或 db.system.users.find() 或 db.runCommand({usersInfo:"userName"})

4.修改指定数据库密码

use admin
db.changeUserPassword("username", "xxx")

Springboot 连接 MongoDB

基础格式如下: 

 通过root用户操作数据库 如不想使用可创建用户进行操作

spring:
  ###### mongodb配置 ########
  data:
    mongodb:
      uri: mongodb://root:root@127.0.0.1:27017/test?authSource=admin&authMechanism=SCRAM-SHA-1

使用新建用户连接数据库操作如下:

先进入mongo客户端,

1.查看admin数据库  use admin  

2.使用root用户登录 如首次创建没有root用户 可自行创建  见如上

db.auth("root","root")  db.auth("用户名","密码") root用户可以按需设置难一点

3.创建普通用户连接指定数据库 必须要用root用户创建

db.createUser({user: "user",pwd: "123456",
roles: [ { role: "readWrite", db: "test" } ]} )

MongoDB开启远程连接

默认本地连接  首先必须保证linux端口和服务器端口是打开的

如果报错:

解决办法: 

1、执行命令,进入 mongodb 容器(mongodb-server 为容器名)

docker exec -it mongodb-server /bin/bash
2、在 mongodb 容器中执行以下命令

#更新源
apt-get update
#安装 vim
apt-get install vim
#修改 mongo 配置文件
vim /etc/mongod.conf.orig

将mongod.conf.orig文件中的bindIp: 127.0.0.1注释掉

或者改成bindIp: 0.0.0.0 即可开启远程连接。

 

docker下安装tomcat并且部署项目

首次创建tomcat容器不能进行挂载,所以我们可以先创建一个没有挂载的容器,做备用

1、拉取镜像tomcat:8

docker pull tomcat:8

2、运行tomcat

docker run -it -p 8080:8080 --name=自定义名字 tomcat:8

2.2 测试

因为我的是在腾讯云服务器上部署的,所以我就在我的本地机器上测试了,输入网址

152.136.203.163:8080(这里输入你的服务器地址),发现404-未找到,证明咱们的tomcat 通了,但是没有访问到tomcat的首页

也可以在浏览器测试,也出现此页面。

由于404,肯定是页面出现问题,所以就进去webapps下找

进入正在运行的tomcat容器


docker exec -it tomcatqaq /bin/bash

进入后可以发现两个重要的webapps以及webapps.dist

在自己tomcat可以发现,下面的东西时全部存在webapps文件夹下的,

点开webapps时发现为空

原来这个tomcat是被docker给阉割了,就是将原本属于webapps下面的全部东西放入到webapps.dist文件下面了

接下来就好办了,可以cp赋值过去,也可以rm移动过去,当然还可以直接删除webapps文件,再将webapps.dist重命名为webapps。这里选择复制

cp -r webapps.dist/* webapps

再切换到webapps,就能发现里面有东西了

12,完成以上步骤,就可以进行最终的测试了

可能需要30s左右,我们就能在浏览器上访问了。一定要用这个外网ip,而不是宿主机ip 就能出现熟悉的·界面了

实现文件挂载(文件同步)

相当于主机的目录映射到容器目录,实现文件的共享,我们只要把文件放在主机目录里,就可以在tomcat里运行

创建容器时添加-v参数,后边为宿主机目录:容器目录,

  1. 创建linux宿主机器要挂载的目录:

直接在docker目录下新建一个与容器名一致的文件夹

并将首次创建的tomcat容器下的conf, logs, webapps复制过来

# 在Linux宿主机器执行复制;将容器mycentos2的/aaa.txt文件复制到 宿主机器的/root目录下

docker cp mytomcat:/usr/local/tomcat/conf /docker/tomcat85tt/

docker cp mytomcat:/usr/local/tomcat/logs /docker/tomcat85tt/

docker cp mytomcat:/usr/local/tomcat/webapps /docker/tomcat85tt/

  1. 容器挂载:

容器挂载的前提的webapps

创建并启动容器tomcat-test,并挂载linux中的/docker/tomcat85tt/指定目录 目录到容器的/usr/local/tomcat/指定目录;

docker run -di --name=tomcat-test -p 9999:8080 \
-v /docker/tomcat85tt/webapps:/usr/local/tomcat/webapps \
-v /docker/tomcat85tt/logs:/usr/local/tomcat/logs \
-v /docker/tomcat85tt/conf:/usr/local/tomcat/conf \
tomcat:8(镜像版本)

将文件从容器内拷贝出来到linux宿主机使用命令:

docker cp tomcat85tt:/usr/local/tomcat /docker/tomcat85tt/

tomcat管理页面403 Access Denied的解决方法

首先在conf/tomcat-users.xml文件里面,在</tomcat-users>前面添加如下代码:

添加以下配置:

    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

然后重启tomcat,重新访问manager app页面,如果此时仍然出现403 Access Denied错误,那么就是访问的ip地受到了限制,

我们打开/webapps/manager/META-INF/目录下context.xml文件

我们将其注释掉

保存,然后重启tomcat,重新访问manager app页面,OK,问题得到解决。

文件进行了挂载的话,每次修改完都必须提交到远程才会生效

至此一个完整的tomcat就部署成功啦!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值