使用Docker部署PDF多功能工具Stirling-PDF

1.服务器上安装docker

安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装。

sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker

查看是否安装成功

$ docker -v Docker version 17.12.1-ce, build 7390fc6
$ docker -v Docker version 17.12.1-ce, build 7390fc6
$ docker -v Docker version 17.12.1-ce, build 7390fc6

Docker启动与停止
安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令:

启动docker

sudo service docker start
sudo service docker start
sudo service docker start

停止docker

sudo service docker stop
sudo service docker stop
sudo service docker stop

重启docker

sudo service docker restart
sudo service docker restart
sudo service docker restart

或者是

systemctl restart docker
systemctl restart docker
systemctl restart docker

2、配置服务器的nginx反向代理,使用域名访问。

我使用的是腾讯云服务器。首先要确认服务器上面已经开通8080这个端口。

nginx配置文件内容如下:

#user nobody; worker_processes auto; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; server { listen 80; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 #charset koi8-r; #access_log logs/host.access.log main; location / { #把http的域名请求转成https return 301 https://$host$request_uri; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server server { listen 443 ssl; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 # 支持跨域 add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,access-control-allow-origin,Token,Authorization'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,HEAD,PATCH'; add_header 'Access-Control-Allow-Credentials' 'true'; ssl_certificate xxxxxxxxxxxxxx; # 这里是你的域名证书文件 ssl_certificate_key xxxxxxxxxxxxxx; # 这里是你的域名证书文件 # ssl_session_cache shared:SSL:1m; 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 / { proxy_pass http://127.0.0.1:8080; # 这里是8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_ssl_verify off; proxy_ssl_session_reuse on; } } }
#user nobody; worker_processes auto; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; server { listen 80; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 #charset koi8-r; #access_log logs/host.access.log main; location / { #把http的域名请求转成https return 301 https://$host$request_uri; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server server { listen 443 ssl; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 # 支持跨域 add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,access-control-allow-origin,Token,Authorization'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,HEAD,PATCH'; add_header 'Access-Control-Allow-Credentials' 'true'; ssl_certificate xxxxxxxxxxxxxx; # 这里是你的域名证书文件 ssl_certificate_key xxxxxxxxxxxxxx; # 这里是你的域名证书文件 # ssl_session_cache shared:SSL:1m; 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 / { proxy_pass http://127.0.0.1:8080; # 这里是8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_ssl_verify off; proxy_ssl_session_reuse on; } } } 
#user nobody; worker_processes auto; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; server { listen 80; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 #charset koi8-r; #access_log logs/host.access.log main; location / { #把http的域名请求转成https return 301 https://$host$request_uri; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server server { listen 443 ssl; server_name xxxxxxx.com; # 这里是你的域名 client_max_body_size 200M; # 修改文件大小的限制,你的网站能够处理的文件的最大限制 # 支持跨域 add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,access-control-allow-origin,Token,Authorization'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,HEAD,PATCH'; add_header 'Access-Control-Allow-Credentials' 'true'; ssl_certificate xxxxxxxxxxxxxx; # 这里是你的域名证书文件 ssl_certificate_key xxxxxxxxxxxxxx; # 这里是你的域名证书文件 # ssl_session_cache shared:SSL:1m; 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 / { proxy_pass http://127.0.0.1:8080; # 这里是8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_ssl_verify off; proxy_ssl_session_reuse on; } } }

3、拉取Stirling-PDF的docker镜像

docker pull https://hub.docker.com/r/frooodle/s-pdf
docker pull https://hub.docker.com/r/frooodle/s-pdf
docker pull https://hub.docker.com/r/frooodle/s-pdf

4、执行docker命令创建容器

docker run -p 8080:8080 frooodle/s-pdf
docker run -p 8080:8080 frooodle/s-pdf
docker run -p 8080:8080 frooodle/s-pdf

5、在浏览器上面输入你的域名就可以访问了。

原文链接:https://blog.csdn.net/xiaozhidian/article/details/135484745?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522069d964412d3e723cac16eff1cf7594c%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=069d964412d3e723cac16eff1cf7594c&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-27-135484745-null-null.nonecase&utm_term=%E7%BE%A4%E6%99%96%E9%83%A8%E7%BD%B2

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享