Linux 下使用Docker 安装 LNMP环境以及项目搭建 超详细

2023-05-16

文章目录

        • 一、安装docker
        • 二、docker安装php
        • 三、docker安装nginx
        • 四、docker安装mysql
          • 四-1 因为我项目中用到了redis,所以还需要安装redis容器
        • 五、docker安装Jenkins
        • 六、将本地的laravel项目在虚拟机环境中跑起来。
        • 七、几个小知识
        • 八、 一些报错
        • 九、 参考文章

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

uname -r #查看你当前的内核版本

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum update

3、卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

	# 建议设置成第一个  第二个太慢了
	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
	#设置完以后再执行如下命令
	yum makecache fast

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装docker

	#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
	yum install docker-ce.x86_64

安装过程报错了:
在这里插入图片描述
分析原因
看上面的内容,说的是containerd.io >= 1.2.2-3 ,意思就是 containerd.io 的版本必须大于等于 1.2.2-3

解决方案:
降低docker 的版本或者更新 containerd.io 的版本

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm

然后回到第7步骤 输入

yum install docker-ce.x86_64

8、启动并加入开机启动

systemctl start docker
systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10、查看docker列表

docker images

11、修改配置文件 可以参考链接:daemon.json详解

1. vi /etc/docker/daemon.json //如果没有新建该文件 
2. 添加以下内容
	{
        "registry-mirrors": [""],
        "live-restore":true
	}
3. 保存退出

12、常用命令

#查看所有镜像
docker images 
#查看所有容器			
docker ps -a 	
#查看运行中的容器		
docker ps 		
#删除容器		
docker rm 容器id	  
#删除镜像  	
docker rmi 镜像id			
#停止容器、同理还有start  restart status
docker stop 容器id/容器名	
#进入容器
docker exec -it 容器名 /bin/bash
#创建容器但是不启动
docker create 
#创建容器并启动
docker run
#重命名
docker rename 
#查看容器日志
docker logs 容器名

以上安装docker 内容完毕,接下来通过运行环境.


二、docker安装php

先安装php比较好,因为后面安装nginx的时候,需要两个容器关联。

1.查找Docker Hub上的php镜像

docker search php

2.拉取官方的镜像

docker pull php:7.4-fpm #指定版本号

3.创建php容器

#虚拟机下新建文件夹
mkdir /usr/local/php7.4
#启动php容器
docker run -p 9000:9000 --name php -d php:7.4-fpm
#拷贝配置文件
docker cp 0850901bc597:/etc/php/7.4/fpm/php.ini /usr/local/php7.4/php.ini
#停止、删除容器
docker stop php
docker rm b2009f54cf34
#正式部署  (这里如果宿主机没有/var/www目录的话  需要新建一下)
docker run -p 9000:9000 --name php -v /var/www:/var/www/html -v /usr/local/php7.4/php.ini:/etc/php/7.4/fpm/php.ini -d php:7.4-fpm
第一个-v php容器和宿主机共享目录
第二个-v 映射配置文件

PHP容器中安装composer

容器中安装composer才可以执行php artisan、composer install等命令

安装步骤:

1.docker exec -it cb6c1fe83bff(php容器ID) bash
2.php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
3.php composer-setup.php
4.php -r "unlink('composer-setup.php');"
5.mv composer.phar /usr/local/bin/composer

PHP容器中安装扩展(以GD库为例)

apt update	#更新软件源
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev	#安装依赖库
docker-php-source extract #解压源码
cd /usr/src/php/ext/gd  #gd源码文件夹

**这里不适用于php7.4!!
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2   #准备编译

**php7.4要用以下的编译方法!!
docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2

docker-php-ext-install gd	#安装并启用gd库
php -m	#查看是否安装成功

php容器中安装redis扩展
redis-5.3.7

1. 宿主机下载安装包  这里下载的是5.3.7,之前下载了一个5.0的没有安装成功。
2. 解压	tar -zxvf redis-5.3.7.tgz 
3. 复制文件到容器里
4. docker cp ./redis-5.3.7/* php:/usr/src/php/ext/redis   # php代表容器名 (如果没有此目录 记得去容器里新建一个)
5. 进入容器
6. docker exec -it php /bin/bash
7. cd /usr/src/php/ext/redis
8. 安装命令
9. docker-php-ext-install redis
10.查看php扩展  php -m 

三、docker安装nginx

1.搜索可用的nginx

docker search nginx

2.拉取官方的镜像

docker pull nginx

3.创建并运行容器,并拷贝nginx的默认配置文件。

#创建并运行容器
docker run --name nginx -p 80:80 -d nginx
#在虚拟机创建以下几个目录
mkdir /var/www
mkdir /usr/local/nginx
mkdir /usr/local/nginx/conf
mkdir /usr/local/nginx/conf/conf.d
mkdir /usr/local/nginx/logs
#拷贝nginx默认配置文件  docker ps 命令可以看到容器id(b2009f54cf34 容器id)
docker cp b2009f54cf34:/usr/share/nginx/html/index.html /var/www/index.html
docker cp b2009f54cf34:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
docker cp b2009f54cf34:/etc/nginx/conf.d/default.conf /usr/local/nginx/conf/conf.d/default.conf
#先停止容器,再删除容器
docker stop b2009f54cf34
docker rm b2009f54cf34
#删除所有容器--谨慎使用!!!
docker rm `docker ps -a -q`

4.正式部署nginx

docker images 可以查看已经下载的镜像。
刚才删除的是启动后的docker容器,并没有删除pull下来的镜像,所以可以直接运行以下命令,再去启动一个nginx容器。
docker run --name nginx -p 80:80 -v /var/www:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/logs:/var/log/nginx -d --link php:php nginx

# 第一个-v 是将容器内nginx的html目录共享到宿主机(虚拟机)的www目录下
# 第二、三个-v是将容器内nginx的配置文件共享到宿主机的指定目录下(刚创建的)
# 第四个-v是将容器内的日志文件共享到宿主机指定目录下
# --link php:php 这个很重要!!! 关联php容器

--name 这里是别名,使用docker ps 会最后显示names
-p  80:80    第一个80是服务器的端口,第二个80是docker容器端口,
-d 要运行的容器名称 这里是nginx
-v 虚拟机位置:容器位置   做映射

nginx配置示例

server {
    listen       8083;
    listen  [::]:8083;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html/laravel-hand-touch/public;
        index index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_pass   php:9000; # 这里很重要!  前面php容器名再加9000
        fastcgi_index  index.php;
        
        #这里路径直接用的项目所在的路径 改成/scripts$fastcgi_script_name;应该也好使。但是没试
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/laravel-hand-touch/public$fastcgi_script_name; 
        
        include        fastcgi_params;
    }
}

此时,nginx安装完成

通过 docker ps -a 查看所有容器。
通过 netstat -nltp 可以查看到80 端口已经启动。

此刻访问虚拟机的IP,nginx 正常运行起来


四、docker安装mysql

docker安装mysql
1.查找镜像:

docker search mysql

也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/

2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):

docker pull mysql

3.通过镜像创建容器并运行:

docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
	
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

此时,用navicat for mysql连接mysql发现报错:Client does not support authentication protocol requested by server。。。
解决方案

1.进入容器
 docker exec -it mysql /bin/bash
2.进入mysql,并且更换数据库
 mysql -uroot -p   #密码123456
 use mysql;
3.开启远程访问权限
 GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
4.更改密码加密方式
 ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER; 
5.更新用户密码
 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456'; 
6.刷新权限
 FLUSH PRIVILEGES; 

以上是MySQL安装的全过程,目前的环境搭建已经全部完成了。

四-1 因为我项目中用到了redis,所以还需要安装redis容器
docker searech redis
docker pull redis
mkdir /usr/local/redis && mkdir /usr/local/redis/data
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /usr/local/redis/myredis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

--restart=always 总是开机启动
-p 6379:63796379端口挂载出去
-d redis 表示后台启动redis
–appendonly yes 开启redis 持久化
–requirepass 123456设置密码

五、docker安装Jenkins

1.安装Jenkins docker镜像网站

1. docker search jenkins
2. docker pull jekins/jenkins   //如果想拉取指定版本   可以去https://hub.docker.com/   搜索docker,点击Tag 下载所需要的版本。
3. 注意!! 这里docker search jenkins的列表中虽然第一个的star最多,但是已经是老版本,不需要。我们就执行上一步的命令即可。

2.安装java环境
1. jdk8_linux百度网盘下载地址 提取码:80ku
2. 官网下载地址 – 不推荐。下载的比网盘慢,并且还得注册Oracle账号。

1. 将下载的tar.gz压缩包上传到/usr/local文件夹下。---这里我下载的是jdk-8u351-linux-x64.tar.gz版本
2. 执行解压命令  tar -zxvf jdk-8u351-linux-x64.tar.gz
3. 配置环境变量 
	1. vi /etc/profile
	2. 在文件最下面填写以下内容
		export JAVA_HOME=/usr/local/jdk1.8.0_351
		export JRE_HOME=${JAVA_HOME}/jre
		export PATH=$PATH:$JAVA_HOME/bin
		export CLASSPATH=.:$JAVA_HOME/lib/toos.jar:$JAVA_HOME/lib/dt.jar
	3. source /etc/profile    使配置文件生效
	4. java -version 验证是否配置成功

3.安装maven环境
下载maven安装包 官方地址 网盘地址 提取码:g54r 这里下载的是3.8.6版本

1.将压缩包上传至/usr/local文件夹下
2.执行命令 tar -zxvf  apache-maven-3.8.6-bin.tar.gz 解压
3.再去执行命令  vi /etc/profile
4.在文件最下面的PATH路径中添加 :/usr/local/apache-maven-3.8.6/bin
5.source /etc/profile    使配置文件生效
6.mvn -version 验证maven是否生效

4.启动Jenkins容器

1. docker images # 查看已拉取的镜像
2. 启动Jenkins容器
 	创建Jenkins映射的地址    
 	mkdir /usr/local/jenkins
 	chmod -R 777 /usr/local/jenkins
 	docker run -dit -uroot -p 8080:8080 -p 50000:50000 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/local/apache-maven-3.8.6:/usr/local/maven -v /var/www:/opt/file -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name jenkins jenkins/jenkins
 	** 注意这里执行的不是exec命令,没必要在后面加上/bin/bash  反正我加上这个参数是启动不了 **
3.参数解释
	# -p 8080:8080 第一个8080指的是服务器的8080端口,第二个指的是容器内的8080端口。意思是将容器内Jenkins默认的8080端口(第二个)映射到服务器中的8080端口(第一个)上。
	# -p 50000:50000  将镜像中的50000端口映射到服务器的50000端口上。后面的是镜像端口,前面第一个是服务器的端口,也就是ip:访问的端口
 	# -v /usr/local/jenkins:/var/jenkins_home  将容器内Jenkins默认的/var/jenkins_home工作空间映射到自己服务器新建的目录中(/usr/local/jenkins)
 	# -v /var/www:/opt/file 将容器中的/opt/file映射到宿主机/var/www文件夹中  (以便用nginx部署的时候指向到这里)
 	# -d 后台运行   -it不知道啥意思 好像是一直保持后台
 	# -uroot	设置操作权限root,镜像中默认的操作权限是jenkins
 	# -v /usr/local/apache-maven-3.8.6:/usr/local/maven    将镜像中的maven目录映射到服务器刚安装的maven目录
 	# jenkins/jenkins   这里对应的是docker images命令中拉取的Jenkins名。如果拉取的是指定版本,记得带上版本号(:版本号)

此外还可以配置镜像加速:

1. cd /usr/loca/jenkins
2. vi hudson.model.UpdateCenter.xml
3.  将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

5.访问 服务器ip:8080即可访问到Jenkins。

在服务器/usr/local/jenkins/secrets/initialAdminPassword文件中可以看到默认的admin密码。

至此Jenkins安装成功。


jenkins中配置gitee地址。
1.首先在系统管理-插件管理中下载gitee插件。然后重启jenkins容器。
2.在系统管理-系统配置中配置gitee地址和个人令牌。
3.新建项目-选择gitee,然后选择git-输入仓库链接和用户名密码即可。
在这里插入图片描述

六、将本地的laravel项目在虚拟机环境中跑起来。

  1. 首先我本地有一个码云上的项目。我下载到了G:\phpstudy_pro\WWW\personal目录下。码云地址

  2. 然后进行virtual的挂载设置,将phpstudy下的www目录挂载到虚拟机根目录下的www目录中。我本地很多项目,所以都会加载到。如图
    在这里插入图片描述

  3. 执行如下命令

    # 现在是把windows上的项目挂载到了虚拟机的/share目录中。
    # 但是如果在nginx中直接绑定项目的public目录会报错,因为/share没有执行权限。
    # 这时候需要在/home/user_account/目录下,也就是你自己创建的账户目录下新建share文件目录。
    # 然后将Windows共享的目录挂载到这个目录就可以了。
    
    #执行如下代码
    cd /home/zlsn
    mkdir share
    mount -t vboxsf www /home/zlsn/share
    
    #注意!!其中www是Windows的目录名,我这里是phpstudy中的www目录。
    /home/zlsn/share是虚拟机的目录路径,zlsn是我的虚拟机账户
    挂载之后就可以访问了
    
  4. 修改docker中的nginx映射文件

    # 1.查看nginx映射关系
    docker inspect -f "{{.Mounts}}" nginx
    # 2.下面将宿主机挂载的目录从/www变更为/home/zlsn/share,容器中对应的目录不变/usr/share/nginx/html。步骤如下:
    # 3.查看nginx的容器id
    docker ps     (我这里的nginx容器id为423dee110622)
    # 4.关闭docker容器
    docker stop nginx
    # 5.停止docker服务
    systemctl stop docker
    # 6.修改docker配置文件  --注意config.v2.json有两个地方需要修改!
    cd /var/lib/docker/containers/423dee110622开头的文件
    将文件config.v2.json和hostconfig.json中的"Source"/nginx更改为/home/zlsn/share
    # 7.开启docker服务
    systemctl start docker
    # 8.启动nginx容器
    docker start nginx
    # 9.再次查看,此时已经修改成功
    docker inspect -f "{{.Mounts}}" nginx
    #10.php的映射关系也要改一下
    

    注意,修改完以后的映射关系如下

    # 查看nginx的映射关系
    docker inspect -f "{{.Mounts}}" nginx
    映射关系如下
    [{bind  /home/zlsn/share /usr/share/nginx/html   true rprivate} {bind  /usr/local/nginx/logs /var/log/nginx   true rprivate} {bind  /usr/local/nginx/conf /etc/nginx/conf   true rprivate} {bind  /usr/local/nginx/conf/conf.d /etc/nginx/conf.d   true rprivate}]
    
    # 查看php的映射关系
    docker inspect -f "{{.Mounts}}" php
    映射关系如下
    [{bind  /usr/local/php/php.ini /etc/php/7.4/fpm/php.ini   true rprivate} {bind  /home/zlsn/share /usr/share/nginx/html   true rprivate}]
    
    
  5. 修改nginx配置文件

    # 进入配置目录
    cd /usr/local/nginx/conf/conf.d
    # 修改配置
    vim test.conf
    # 写入如下代码
    
    
    server {
        listen       80;
        listen  [::]:80;
        server_name  www.cremb.com;
        root   /usr/share/nginx/html/personal/CRMEB-Min/src/crmeb/public;
        location / {
            index index.php index.html index.htm;
            autoindex  off;
    
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;
                break;
            }
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            fastcgi_pass   172.17.02:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    
    }
    #windows本地host文件中加入,即可在本地访问此网址。
    虚拟机ip    www.cremb.com
    

    windows本地访问www.cremb.com 即可成功。

七、几个小知识

1.配置多站点
目前想到的办法是这样:多映射几个端口到宿主机,然后访问宿主机某个端口的时候,自然就访问到nginx容器中的对应端口了!
如下

docker run --name nginx -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -v /var/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx -d nginx

容器中安装vim

apt-get update
apt-get install vim

cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF

查看php容器IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' php

注意事项

1.php的内网IP要配置到nginx中的配置文件里。
2.php的映射目录要替换掉$document

配置swap
如果服务器的配置不高,可以选择配置一下swap

1. free -h 查看内存配置情况。一般是没有配置swap的
2. 运行df -h,查看硬盘空间使用情况,确保有足够的空间
3. 配置命令:dd if=/dev/zero of=/var/swap bs=1M count=5120    解释:if 表示infile,of表示outfile,bs=1M代表增加的模块大小是1M,count=5120代表模块个数5120,也就是5G空间
4. 以下命令启用swap  
5. mkswap /var/swap
6. mkswap -f /var/swap
7. swapon /var/swap
8. 再次运行free -m 查看是否已经启用swap
9. 设置swap文件永久有效
10. vi /etc/fstab    &&  文件中添加上如下内容:/var/swap swap swap defaults 0 0
10.取消swap  swapoff /var/swap   &&     rm -rf /var/swap 

运行laravel项目如果报错Failed to clear cache. Make sure you have the appropriate permissions.

在storage/framework/cache目录下新建data文件夹就好了

八、 一些报错

  1. WARNING: bridge-nf-call-iptables is disabled解决
  2. laravel项目报错 could not find driver,解决方法

    docker exec -it php /bin/bash
    docker-php-ext-install pdo pdo_mysql

九、 参考文章

  1. docker启动jenkins(centos)
  2. Docker安装Jenkins
  3. Linux 下使用Docker 安装 LNMP环境 超详细
  4. CentOS 配置Swap
  5. Docker PHP容器安装composer
  6. Docker为PHP安装gd扩展
  7. docker搭建nginx+php环境
  8. Docker安装MySQL并使用Navicat连接
  9. Docker中php安装redis扩展
  10. 史上最详细Docker安装Redis (含每一步的图解)实战
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 下使用Docker 安装 LNMP环境以及项目搭建 超详细 的相关文章

  • UART数据波形分析

    摘要 xff1a 本文通过对异步串行数据格式的分析 xff0c 阐述通过波形分析方法调试UART数据收发的原理和方法 经常遇到初学者 xff0c 对单片机串行通讯出了问题不知道如何办的情况 其实最有效的调试方法是用示波器观察收发数据的波形
  • 机器人学基础(二):机器人运动学

    机器人运动方程的表示 通常把描述一个连杆和下一个连杆的相对关系的齐次变换叫做A矩阵 1 1运动姿态和方向角 用矢量来描述机器人的运动方向 欧拉角表示运动姿态 RPY角表示运动姿态 1 2运动位置和坐标 用柱面坐标表示运动位置 用球面坐标表示
  • 图像位深和通道之间的联系

    以OpenCV为例 xff1a CV 16UC1 16位 xff0c 1 xff08 单 xff09 通道 CV 16UC3 16位 xff0c 3通道 CV 16UC1 xff0c 单通道的黑白图像 xff0c 每一个像素点由16位来表示
  • 斜线/、反斜线\、双斜线//、双反斜线\\

    看到这些东西就有点小晕 xff0c 整理到一起加以区分 上面符号 xff0c 中为正 xff0c 左为斜线 xff0c 右为反斜 xff1b 八字 xff0c 先撇为斜 xff0c 后捺为反斜 这些符号在不同的系统下意义不同 双斜线 协议和
  • linux中常用的截图录屏软件

    linux中常用的截图录屏软件 1 kazam 推荐 工具小巧而功能全面 可以选择全屏 窗口或者自定义区域 可以设置帧率 编码方式 时延倒计时 音频来源等 kazam默认视频编码方式是H264 保存为MP4文件 还支持截图功能 sudo a
  • openEuler 安装图形桌面环境Gnome或DDE或UKUI

    由于openEuler系统主要针对服务器 xff0c 目前默认安装之后没有图形桌面环境 xff0c 需要的用户可以自己手动安装配置 这里推荐安装深度桌面DDE或优麒麟UKUI环境 安装gnome桌面 sudo dnf makecache s
  • Ubuntu更换国内镜像源

    由于Ubuntu官方镜像速度有限 xff0c 可以使用国内镜像加速更新和下载 xff0c 节约时间 常用的国内镜像有很多 xff0c 本人常用的有如下几个 xff0c 仅供参考 163镜像 mirrors 163 com 清华镜像 mirr
  • ubuntu-2204 gerrit ssh 报错Permission denied (publickey).分析及解决

    ubuntu 2204 gerrit ssh 报错Permission denied publickey 分析及解决 使用repo init sync下载代码时遇到报错 Permission denied publickey 分析排查步骤
  • UCOSII操作系统 第3课—UCOSII启动过程

    1 初始化UCOSII 1 在调用UCOSII在任何的其他的服务之前 xff0c UCOSII要求首先调用初始化函数OSInit 这个函数的目的就是在整个系统启动之前 xff0c 初始化所有的变量和数据结构 2 其中 xff0c 在OSIn
  • vscode安装配置clang-format插件及使用

    vscode安装配置clang format插件及使用 首先安装插件 在vscode扩展里搜索clang format xff0c 安装排名第一的xaver clang format 确认clang format可执行程序路径 window
  • 消息序列化工具-protobuf介绍及安装使用技巧

    简介 protobuf是google团队开发的用于高效存储和读取结构化数据的工具 xml json也可以用来存储此类结构化数据 xff0c 但是使用protobuf表示的数据能更加高效 xff0c 并且将数据压缩得更小 xff0c 大约是j
  • 消息序列化工具-为现代C++设计的jsoncpp介绍与使用技巧

    概述 JSON 的全称为 xff1a JavaScript Object Notation xff0c 顾名思义 xff0c JSON 是用于标记 Javascript 对象的 xff0c JSON 官方的解释为 xff1a JSON 是一
  • cppcheck代码检查工具安装与使用技巧

    cppcheck代码检查工具安装与使用技巧 Cppcheck 是一种 C C 43 43 代码缺陷静态检查工具 不同于 C C 43 43 编译器及很多其它分析工具 xff0c 它不检查代码中的语法错误 Cppcheck 可以检查非标准代码
  • sed流编辑器中使用变量替换以及执行外部命令

    在使用sed对日志或者其它文本进行parse的过程当中 xff0c 有时候我们需要引用外部变量的值 xff0c 或者获取一个shell命令执行的结果 xff0c 以便达到更加可观的输出结果 这里介绍如何做到 sed 流编辑 1 sed命令及
  • mkisofs命令制作iso文件

    mkisofs命令行格式 mkisofs adDfhJlLNrRTvz print size quiet A lt 应用程序ID gt b lt 开机映像文件 gt c lt 开机文件名称 gt hide lt 目录或文件名 gt hide
  • windows下tree命令列出文件目录树

    windows下tree命令列出文件目录树 tree path f tree D AR C Team f 可以将D AR C Team目录下所有目录及子目录下的文件都打印出来 tree D AR C Team f gt HOMEPATH f
  • yum命令安装历史回滚彻底删除安装的依赖包

    yum命令安装一个软件包是会连同依赖包一起安装 xff0c 但是yum remove卸载时却只卸载这个文件包本身 如果需要删除安装时附加的依赖包可以使用yum history的相关操作实现回滚 假如安装了ecliipse pde xff0c
  • latex在ipython jupyter notebook中的使用

    In 2 from IPython display import Latex In 5 数学公式的前后要加上 或 和 Latex r 34 f x 61 3x 43 7 34 Out 5 In 6
  • MATLAB 2018b 帮助页面设置为中文显示

    MATLAB 2018b 帮助页面设置为中文显示 具体步骤如下 xff1a 1 随机点击一个matlab的函数点击 help 2 点击帮助页面的设置按钮 3 按照如下步骤设置即可
  • 图解Java线程死锁的必要条件

    文章目录 What is Deadlock发生死锁要如何解决如何预防死锁参考资料 What is Deadlock In concurrent computing a deadlock is a state in which each me

随机推荐

  • 远程LINUX桌面的好用工具,NoMachine.

    安装及使用都比VNC及XManager要好用 xff0c 网站 https www nomachine com 对应下各自的版本后 xff0c 按照网站的说明进行安装就可以了 xff0c 安装过程不需要其他依赖项 xff01 Linux安装
  • 竞赛经验|2019年电赛B题四旋翼无人机组巡线机器人

    竞赛经验 xff5c 2019年电赛B题四旋翼无人机组巡线机器人 参赛背景和比赛回忆 xff1a 1 院校背景 xff1a 2 规则与现实 xff1a 3 比赛流程 xff1a 备赛建议1 器件选择 xff1a 2 针对学习 xff1a 写
  • C语言实现http post请求和get请求,post请求可以上传图片和文件

    文章目录 1 http协议简介2 http协议分析2 1 http请求2 1 1 请求行2 1 1 1 请求方法2 1 1 2 URL2 1 1 3 协议版本2 1 1 4 请求行总结 2 1 2 请求头部2 1 3 请求数据 2 2 ht
  • 软件改变世界

    随着科技的不断进步 xff0c 软件及其相关技术的发展已经深刻地改变了人类社会的方方面面 从交通运输 医疗卫生到商业服务 教育培训 xff0c 软件技术的应用已经深入到我们的日常生活中 xff0c 对我们的生活方式和生产方式都带来了深刻的影
  • MATLAB 比较好入门书籍有哪些推荐

    https www zhihu com topic 19559252 hot https www zhihu com question 19904418 作者 xff1a 陈村 链接 xff1a https www zhihu com qu
  • pymavlink使用简单教程

    这里写自定义目录标题 pymavlink主要包含的模块连接样例 设置任务样例 更改飞行参数param样例 飞行模式总结 pymavlink Pymavlink是MAVLink协议的python实现 自身包括一个源代码生成器 xff08 ge
  • Python案例003——句子生成器

    目标 xff1a 通过用户提供的内容 xff0c 随机生成唯一的句子 提示 xff1a 以用户输入的名词 代词 形容词等作为输入 xff0c 然后将所有数据添加到句子中 xff0c 并将其组合返回 输出固定的 内容 43 用户输入的内容 c
  • 嵌入式软件工程师面试题

    1 int a 10 61 1 2 3 4 5 6 7 8 9 0 int p 61 amp a 1 则p 6 等于8 2 整数数组清零 xff1a bzero memset 3 siezof 测试变量所占地址的字节数 4 main cha
  • 国内代码仓库-码云

    相信使用github的同学会经常碰到这样的情况 xff0c 当我们从github上面下载稍微大一点的代码的时候就经常下载失败 xff0c 下载网速是非常的感人 国内从github上下载代码非常慢 xff0c 解决办法就是修改host或者vp
  • php对接支付宝Web支付-tp5.1框架

    具体流程 1 获取支付宝相关配置 2 传相关参数请求支付宝网关 订单金额 订单号等 3 支付宝请求回调地址 4 回调地址做相关业务处理 数据库增删改查之类 5 处理完成以后返回success给支付宝服务器 1 首先获取应用id和商户私钥以及
  • TX2+realsense D435i跑VSLAM--001--内核劝退篇

    想要使用tx2连接深度相机realsense D435i xff0c 没想到下载好官方自带SDK后 xff0c 说tx2的版本不满足需求 需要至少L4T28 2 1 xff0c 为什么偏偏就差这么一点版本 xff0c 然后查了查 xff0c
  • PHP对接微信支付--Native tp5框架

    这里实现的功能是 xff1a 网页上点击支付 xff0c 然后调用此方法生成二维码并且返回二维码的图片路径 xff0c 然后扫码支付 xff0c 付款成功进行回调 xff0c 在回调地址进行数据库操作 1 配置微信支付参数 微信支付参数 f
  • 微信支付退款 PHP

    应用场景 当交易发生之后一段时间内 xff0c 由于买家或者卖家的原因需要退款时 xff0c 卖家可以通过退款接口将支付款退还给买家 xff0c 微信支付将在收到退款请求并且验证成功之后 xff0c 按照退款规则将支付款按原路退到买家帐号上
  • windows+本地虚拟机搭建gitlab

    一 安装依赖软件 xff04 yum y install policycoreutils openssh server openssh clients postfix 二 设置postfix开机自启 xff0c 并启动 xff0c post
  • 使用Springboot实现简单的增删改查-超详细

    使用Springboot实现简单的增删改查 超详细 xff08 java小白 仅记录 不喜勿喷 xff09 php想转java 就想写个简单的增删改查 写惯了php 感觉java好复杂 php一般就是定义路由 xff0c 然后去控制器 xf
  • Windows下Virtual box安装centos以及virtual box的增强功能(超详细)

    Windows下Virtual box安装centos以及virtual box的增强功能 xff08 超详细 xff09 1 准备工作1 1 下载Virtual Box1 2 下载centos7镜像 2 安装virtual box3 新建
  • 使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied

    问题 xff1a 在Linux服务器上设置crontab定时任务执行laravel任务调度的时候 xff0c crontab e 无法保存 会报错 var spool cron Permission denied 于是百度到是var spo
  • 服务器对接码云webhooks实现自动部署--超详细--PHP

    公司代码是放在码云上的 xff0c 每次提交代码 xff0c 都要去服务器上执行一下git pull xff0c 就很麻烦 xff0c 于是想对接一下码云的webhooks实现自动部署 本文参考链接1 xff0c 参考链接2 这里以lara
  • centos7搭建LNMP环境-编译安装&yum安装-超详细

    文章目录 0 首先建议使用docker搭建环境 链接在这 xff01 https blog csdn net handsomezls article details 116936581 1 首先了解编译安装和yum安装的区别 2 yum安装
  • Linux 下使用Docker 安装 LNMP环境以及项目搭建 超详细

    文章目录 一 安装docker二 docker安装php三 docker安装nginx四 docker安装mysql四 1 因为我项目中用到了redis xff0c 所以还需要安装redis容器 五 docker安装Jenkins六 将本地