虚拟机|linux常用命令及环境搭建

【虚拟机|linux常用命令及环境搭建】
linux常用命令及环境搭建

      • linux命令
        • 1.0 安装docker
      • docker的常用命令
        • 1.0 镜像的命令
        • 1.1 容器的命令
      • docker 安装nginx
      • docker来安装一个tomcat
      • 项目安装、部署
        • 1、下载jdk
        • 2、tomcat的启动
        • 3、启动mysql
        • 4、启动nacos
        • 5、配置linux的host文件
        • 6、安装redis
        • 7、rabbitmq的安装
        • 8 、解压命令
        • 9、关闭防火墙
        • 10、nginx原始安装教程centos 7
        • 11、配置ssl
      • 项目启动
      • 前端项目打包

linux命令
环境查看
unname -r

查看系统详细的版本
[root@VM-0-16-centos /]# cat/etc/os-release NAME="CentOS Linux" VERSION="8 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="8" PLATFORM_ID="platform:el8" PRETTY_NAME="CentOS Linux 8 (Core)" ANSI_COLOR="0; 31" CPE_NAME="cpe:/o:centos:centos:8" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-8" CENTOS_MANTISBT_PROJECT_VERSION="8" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="8"

1.0 安装docker 官网地址
帮助文档:
# 1、卸载旧的版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 2、需要的一些安装包 yum install -y yum-utils # 3、设置镜像的厂库 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo #默认是从国外的十分的慢yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #阿里云镜像地址 #更新索引 yummakecache fast # 4、安装docker相关的资源 docker-ce 社区ee企业版 yum install docker-ce docker-ce-cli containerd.io# 5、启动docker systemctl start docker # 6、查看docker的版本 docker version # 7、docker测试 docker run hello-world

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXAgX79T-1639733923817)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211207094332893.png)]
# 8、查看一下下载的这个hello-world 镜像 docker images [root@VM-0-16-centos /]# docker images REPOSITORYTAGIMAGE IDCREATEDSIZE hello-worldlatestfeb5d9fea6a52 months ago13.3kB

卸载docker
# 1、卸载依赖 yum remove docker-ce docker-ce-cli containerd.io # 2、删除安装路径 rm -rf /var/lib/docker # /var/lib/docker docker默认的工作路径

阿里云镜像加速

docker运行流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9DtgzgF-1639733923818)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211207101957109.png)]
docker的常用命令
1.0 镜像的命令 帮助命令
docker--help# 帮助命令

# docker images [root@VM-0-16-centos /]# docker images REPOSITORYTAGIMAGE IDCREATEDSIZE hello-worldlatestfeb5d9fea6a52 months ago13.3kB # 解释 REPOSITORY镜像的仓库源 TAG镜像的标签 IMAGE ID镜像的id CREATED镜像的创建时间 SIZE镜像的大小

docker pull 下载镜像
#下载镜像 docker pull 镜像名:tag[] docker pull mysql[root@VM-0-16-centos /]# docker pull mysql:5.7# 我这里指定了mysql的版本 5.7: Pulling from library/mysql ffbb094f4f9e: Pull complete# 分层下载 docker image的核心 联合文件系统 df186527fc46: Pull complete fa362a6aa7bd: Pull complete 5af7cb1a200e: Pull complete 949da226cc6d: Pull complete bce007079ee9: Pull complete eab9f076e5a3: Pull complete c7b24c3f27af: Pull complete 6fc26ff6705a: Pull complete bec5cdb5e7f7: Pull complete 6c1cb25f7525: Pull complete Digest: sha256:d1cc87a3bd5dc07defc837bc9084f748a130606ff41923f46dec1986e0dc828d Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7 # 真实地址# 下面两个地址是一样的 docker pull mysql:5.7 docker pull ocker.io/library/mysql:5.7# 删除镜像 docker rmi -f 镜像id # 删除多个镜像 docker rmi -f 镜像id 镜像id镜像id镜像id # 删除全部的镜像 docker rmi -f $(docker images -aq)

1.1 容器的命令
# 说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习 docker pull centos

新建容器并启动
docker run[可选参数] image #参数说明 --name="Name"容器名字 -d后台方式运行 -it使用交互方式运行,进入容器查看内容 -p指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口 (常用) -p 容器端口 -p随机指定端口 #测试,启动并进入容器 [root@VM-0-16-centos /]# docker run-it centos/bin/bash # 从容器中退出 exit #dockerps 命令 #列出当前正在运行的容器 -a#列出当前正在运行的容器+带出历史运行过的容器 -n=? #显示最近创建的容器 -q# 只显示容器的编号 # 查看运行中的容器 dockerps # 查看曾经运行过的容器 docker ps -a #查看最近创建的一个容器 [root@VM-0-16-centos /]# docker ps -n=1 CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 5799eda1fb08centos"/bin/bash"2 hours agoExited (0) 4 minutes agolucid_joliot

退出容器
exit# 直接容器停止并退出 Ctrl +P +Q# 容器不停止并退出

删除容器
docker rm 容器id# 删除指定的容器(不能删除正在运行的容器,如果要强制删除 rm -f) docker rm-f $(dockerps -aq) #删除所有的容器 docker ps -a -q|xargs docker rm # 删除所有的容器

启动和停止容器
docker start容器id#启动容器 docker restart 容器id# 重启容器 docker stop 容器id# 停止当前正在运行容器 docker kill 容器id # 强制停止当前容器

常用的其他命令
# 后台启动容器 # 命令 docker run -d 镜像名 docker run -d centos# 问题docker ps 发现 centos 停止了#常见的坑:docker容器使用后台运行。就必须要有一个前台进程,docker发现没有应用,就会自动停止 # ngix 容器启动后,发现自己没有提供服务,就会立即停止,就是没有程序了

查看日志
#自己编写一段日志 [root@VM-0-16-centos /]# docker run -d centos /bin/sh -c "while true; do echo llc ; sleep 1; done" # 显示日志 [root@VM-0-16-centos /]# docker logs -tf --tail 1030ee448f6ed2# 查看log日志帮助命令 root@VM-0-16-centos /]# docker logs --helpUsage:docker logs [OPTIONS] CONTAINERFetch the logs of a containerOptions: --detailsShow extra details provided to logs -f, --followFollow log output --since stringShow logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes) -n, --tail stringNumber of lines to show from the end of the logs (default "all") -t, --timestampsShow timestamps --until stringShow logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes) [root@VM-0-16-centos /]# docker logs -tfn 1030ee448f6ed2# docker logs -tfn条数容器id

查看容器中的进程信息
# 命令dockertop 容器id [root@VM-0-16-centos /]# docker top 30ee448f6ed2 UIDPIDPPIDCSTIMETTYTIMECMD root271851271833017:18?00:00:00/bin/sh -c while true; do echo llc ; sleep 1; done root273704271851017:26?00:00:00/usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

查看镜像元数据
#命令 docker inspect 容器id

进入当前运行中的容器
#我们通常容器都是使用后台方式运行,需要进入容器,修改一些配置# 命令 docker exec -it 容器idbashShell#测试 [root@VM-0-16-centos /]# docker ps CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES e551731fbb3ccentos"/bin/bash"About a minute agoUp About a minutexenodochial_davinci [root@VM-0-16-centos /]# docker exec -it e551731fbb3c /bin/bash [root@e551731fbb3c /]# ls bindevetchomeliblib64lost+foundmediamntoptprocrootrunsbinsrvsystmpusrvar [root@e551731fbb3c /]# ps -ef UIDPIDPPIDC STIME TTYTIME CMD root100 03:40 pts/000:00:00 /bin/bash root1600 03:42 pts/100:00:00 /bin/bash root31160 03:42 pts/100:00:00 ps -ef# 方式二 docker attach 容器id #测试 [root@VM-0-16-centos /]# docker ps CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES e551731fbb3ccentos"/bin/bash"4 minutes agoUp 4 minutesxenodochial_davinci [root@VM-0-16-centos /]# docker attach e551731fbb3c# docker exec#进入容器后开启一个新的终端,可以在里面操作(常用) # docker attach #进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机上
# docker cp 容器id:容器内路径 目的主机路径 docker cpe551731fbb3c:/home/text.txt /home

小结:
虚拟机|linux常用命令及环境搭建
文章图片

docker 安装nginx
#拉取镜像 docker pull nginx #启动nginx docker run -d --name nginx的名称 -p 外网端口:80nginx # -d 后台运行 # --name 给容器命名 # -p 宿主机端口 docker run -d --name nginx01 -p 3344:80nginx # 本机访问 [root@VM-0-16-centos /]# curl localhost:3344 Welcome to nginx! > html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.
Thank you for using nginx.
# 进入容器中 [root@VM-0-16-centos /]# docker exec-it nginx01 /bin/bash # 查看nginx的配置 root@42d0b48127a6:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@42d0b48127a6:/# cd /etc/nginx root@42d0b48127a6:/etc/nginx# ls conf.d fastcgi_params mime.typesmodulesnginx.confscgi_paramsuwsgi_params root@42d0b48127a6:/etc/nginx#

虚拟机|linux常用命令及环境搭建
文章图片

docker来安装一个tomcat
# 官方使用 docker run -it --rm tomcat:9.0 #我们之前的启动都是后台,停止了容器之后,容器还是可以查到docker run -it --rm ,一般用来测试,用完就删除# 下载启动 docker pull tomcat:9.0 # 启动tomcat [root@VM-0-16-centos /]# docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0 # 但是访问外网的ip不能访问到tomcat的主页,因为阿里云镜像默认下载最小的镜像 # 将webapps.dist中的文件信息放入webapps root@732c610cb68b:/usr/local/tomcat# cp -r webapps.dist/*webapps

项目安装、部署
1、下载jdk
# 解压文件 tar -zxvfjdk-8u101-linux-x64.tar.gz(jdk的压缩包) cp -pjdk1.8.0_101/usr/local/java# 将压缩包添加包 # 修改配置项 vim /etc/profile #配置如果下 export JAVA_HOME=/usr/java/jdk1.8.0_311 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}; #编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效: source /etc/profile # 查看jdk是否安装成功 java -

2、tomcat的启动
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0

3、启动mysql
docker restart 容器id# 重启容器

4、启动nacos
# 进入nacos的目录 cd /usr/local/nacos/bin # 后台启动nacos sh startup.sh -m standalone & # 查看日志 tail -500f /usr/local/nacos/logs/start.out #关闭nacos sh shutdown.sh

5、配置linux的host文件
vim /etc/hosts

6、安装redis
# 解压redis tar -zvxf redis-5.0.7.tar.gz # 移动redis目录 mv /root/redis-5.0.7 /usr/local/redis # 编译 cd到/usr/local/redis目录,输入命令make执行编译命令 make # 安装 make PREFIX=/usr/local/redis install 这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。# 启动redis ./bin/redis-server& ./redis.conf# 查看redis是否正在运行 ps -aux | grep redis # 采取端口监听查看方式 netstat -lanp | grep 6379 # 关闭运行中的redis服务 ./bin/redis-cli shutdown# 对redis设置密码(首先得启动redis) redis-cli -p 6379#查看当前redis的密码 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" # 设置密码 config set requirepass abcdefg # 绑定redis的运行端口 (添加 bind 机器的地址) vim redis.conf bind 139.155.73.165

7、rabbitmq的安装
# 拉取镜像 docker pull rabbitmq:3.7.7-management # 启动 dockerrun -d -p 15672:15672 --namerabbitmq rabbitmq:3.7.7-management

8 、解压命令
unzip[选项] 压缩包名# 解压gz tar -zxvfnginx-1.9.9.tar.gz

9、关闭防火墙
#1:查看防火状态systemctl status firewalldserviceiptables status#2:暂时关闭防火墙systemctl stop firewalldserviceiptables stop#3:永久关闭防火墙systemctl disable firewalldchkconfig iptables off#4:重启防火墙systemctl enable firewalldservice iptables restart

10、nginx原始安装教程centos 7
# 下载nginx安装包 wget http://nginx.org/download/nginx-1.9.9.tar.gz # 把压缩包解压到usr/local/java tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/java # 依赖引入 yum install openssl openssl-devel # 安装ssl证书需要的模块。 ./configure --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module--with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module# 切换到cd /usr/local/java/nginx-1.9.9/下面 ./configure make make install # 切换到/usr/local/nginx/conf安装目录,配置nginx的配置文件nginx.conf文件,主要也就是端口 vi nginx.conf # 切换目录到/usr/local/nginx/sbin下面,启动nginx服务 ./nginx # 查看nginx服务是否启动成功 ps -ef | grep nginx # 重启服务 nginx -s reload

nginx的负载均衡
upstream mysvr { server 81.68.207.210:9001 weight=1; # weight 只权重这里都是1那么就轮询 server139.155.73.165:8081 weight=1; } server { .... location~*^.+$ { proxy_passhttp://mysvr; #请求转向mysvr 定义的服务器列表 }

错误解决
虚拟机|linux常用命令及环境搭建
文章图片

解决方法:
首先:将/nginx目录下/objs/Makefile中的 -Werror删除。
虚拟机|linux常用命令及环境搭建
文章图片

其次make:立马再次编译的话,是会报另一个错误。
虚拟机|linux常用命令及环境搭建
文章图片

最后:在nginx目录下输入命令:vim src/os/unix/ngx_user.c,将下图红框内内容注释,退出保存即可正常编译
虚拟机|linux常用命令及环境搭建
文章图片

https://blog.csdn.net/weixin_44898541/article/details/121537998
11、配置ssl 绑定域名与地址
开放443端口
申请证书
上传证书
开发端口
nginx.conf
#usernobody; worker_processes1; #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; #pidlogs/nginx.pid; events { worker_connections1024; }http { includemime.types; default_typeapplication/octet-stream; #log_formatmain'$remote_addr - $remote_user [$time_local] "$request" ' #'$status $body_bytes_sent "$http_referer" ' #'"$http_user_agent" "$http_x_forwarded_for"'; #access_loglogs/access.logmain; sendfileon; #tcp_nopushon; #keepalive_timeout0; keepalive_timeout65; # 引入个人配置模块 include llc.conf; }

llc.conf
upstream mysvr { server 81.68.207.210:9001 weight=1; # weight 只权重这里都是1那么就轮询 # server139.155.73.165:8081 weight=1; } server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name llchun.xyz; #证书文件名称 ssl_certificate/usr/local/nginx/conf/cert/llchun.xyz_bundle.crt; #私钥文件名称 ssl_certificate_key /usr/local/nginx/conf/cert/llchun.xyz.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 root /home/error_not_found; index404.html; } } server { listen80; server_namellchun.xyz; location/ { proxy_passhttp://mysvr; #请求转向mysvr 定义的服务器列表 }error_page500 502 503 504/50x.html; location = /50x.html { roothtml; } }server { listen9001; server_name81.68.207.210; location/ { root/home/dist; indexindex.html; }error_page500 502 503 504/50x.html; location = /50x.html { roothtml; } }server { listen9002; server_name81.68.207.210; location/ { root/home/error_not_found; index404.html; }error_page500 502 503 504/50x.html; location = /50x.html { roothtml; } }server { listen80; server_namelocalhost; location / { roothtml; indexindex.html index.htm; }error_page500 502 503 504/50x.html; location = /50x.html { roothtml; }# proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { #proxy_passhttp://127.0.0.1; #}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { #roothtml; #fastcgi_pass127.0.0.1:9000; #fastcgi_indexindex.php; #fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name; #includefastcgi_params; #}# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { #denyall; #} }# another virtual host using mix of IP-, name-, and port-based configuration # #server { #listen8000; #listensomename:8080; #server_namesomenamealiasanother.alias; #location / { #roothtml; #indexindex.html index.htm; #} #}# HTTPS server # #server { #listen443 ssl; #server_namelocalhost; #ssl_certificatecert.pem; #ssl_certificate_keycert.key; #ssl_session_cacheshared:SSL:1m; #ssl_session_timeout5m; #ssl_ciphersHIGH:!aNULL:!MD5; #ssl_prefer_server_cipherson; #location / { #roothtml; #indexindex.html index.htm; #} #}

http到https
#http重定向到htts if ($server_port = 80){ return 301 https://$server_name$request_uri; } #http重定向到htts if ($scheme = http){ return 301 https://$server_name$request_uri; }

项目启动
启动命令:java -jar jar包 &
查看进程: ps -ef | grep java
杀死进程: kill -9 pid
项目启动: nohup java -Xms2048m -Xmx2048m -jar bks-bigdata-center.jar &
日志查看: tail -f nohup.out
# 1、启动docker systemctl start docker # 2、启动mysql docker restart 容器id# 重启容器 # 3、启动tomcat docker restart 容器id# 重启容器 # 3、启动nacos # 进入nacos的目录 cd /usr/local/nacos/bin # 启动nacos sh startup.sh -m standalone & # 查看日志 tail -500f /usr/local/nacos/logs/start.out # 4、启动redis # 启动redis ./bin/redis-server& ./redis.conf# 查看redis是否正在运行 ps -aux | grep redis # 关闭运行中的redis服务 ./bin/redis-cli shutdown# 对redis设置密码(首先得启动redis) redis-cli -p 6379#查看当前redis的密码 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" # 设置密码 config set requirepass abcdefg

前端项目打包
# 打包前端项目 npm run buil # 配置nginx # 切换到/usr/local/nginx/conf安装目录,配置nginx的配置文件nginx.conf文件,主要也就是端口 vi nginx.conf

虚拟机|linux常用命令及环境搭建
文章图片

    推荐阅读