乌班图(Ubuntu)

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

$ sudo apt-get remove docker \docker-engine \docker.io

使用APT安装

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt-get update$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg \lsb-release

如果报错如下:

然后找到对应的端口号,kill掉就可以了

方法

 ps -aux    

列出进程
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1 0.0 0.0   4020   880 ?        Ss   15:27   0:00 /sbin/init
root         2 0.0 0.0      0     0 ?        S<   15:27   0:00 [kthreadd]

找到最后一列以 apt-get 开头的进程

然后输入
sudo kill 该进程的PID

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

然后,我们需要向 sources.list 中添加 Docker 软件源

$ echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 官方源
# $ echo \
#   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
#   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker

更新 apt 软件包缓存,并安装 docker-ce

$ sudo apt-get update$ sudo apt-get install docker-ce docker-ce-cli containerd.io

启动 Docker

$ sudo systemctl enable docker
$ sudo systemctl start docker

建立 docker 用户组

建立 docker 组:

$ sudo groupadd docker

将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER

退出当前终端并重新登录,进行如下测试。

测试 Docker 是否安装正确

$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

镜像加速器

目前主流 Linux 发行版均已使用 systemd 进行服务管理,这里介绍如何在使用 systemd 的 Linux 发行版中配置镜像加速器。

请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址。

$ systemctl cat docker | grep '\-\-registry\-mirror'

如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。

如果以上命令没有任何输出,那么就可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

安装centos

官方:CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。

说人话:就是一个操作系统品牌。

docker pull centos:7.9.2009

下载完毕之后,

# 运行docker容器
docker run -itd --name centos-test centos:7.9.2009

验证安装成功

# 通过docker ps命令查看容器的运行信息
docker ps

以下是安装详细教程;
docker安装 CentOS_孤独的小饼干的博客-CSDN博客_docker需要安装centos、

安装Nginx

取最新版的 Nginx 镜像
docker pull nginx:latest

运行容器

docker run --name nginx-test -p 8080:80 -d nginxhostname -I | awk '{print $1}'
找到ip地址
之后访问http:ip地址:8080

出现一下图片,即访问成功

创建宿主主机上文件夹

# 创建挂载目录
mkdir -p /home/nginx/conf /home/nginx/log /home/nginx/html

容器中的nginx.conf文件和conf.d文件夹复制到宿主机


# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/

删除现在运行nignx的容器

# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a# 关闭该容器
docker stop nginx# 删除该容器
docker rm nginx# 删除正在运行的nginx容器
docker rm -f 容器Id

运行nginx

docker run \
-p 8080:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest

或者

docker run -p 8080:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest

访问ip地址端口号8080,然后就可以看到结果了

然后,打包vue项目当道宿机上的html【我这边是html】文件里面

最后配置,/home/nginx/conf/conf.d中的default.conf文件

我的是以下配置

server {listen 80;server_name _;charset utf-8;access_log  /var/log/nginx/discuz-front_end.acess.log;location @rewrites {rewrite ^/(discuz)/(.+)$ /$1/index.html last;}location ^~ /discuz {rewrite /discuz/(.*) /$1  break;# root 配置的路径是:需要进入nginx # 命令:docker exec -it 91a81b1b15be /bin/bash# whereis nginx 之后就有nginx路径# 其中 最后一个路径就有 /usr/share/nginx,然后切换到这个路径上,cd 到该路径下的文件里面,就是存储的打开的项目包;把这个路径copy到下面配置中就OK了;root /usr/share/nginx/html;#index index.html;try_files $uri $uri/ /index.html @rewrites;add_header Cache-Control "no-cache, no-store";client_body_buffer_size 128k;proxy_buffer_size 128k;proxy_buffers   32 32k;proxy_busy_buffers_size 128k;proxy_temp_file_write_size 128k;client_max_body_size 100m;proxy_set_header Host  $host;proxy_set_header   HTTP_CLIENT_IP        $remote_addr;proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;}location /discuz/api/ {# 配置访问api的代理proxy_pass http://discuz-api.dev.shqstec.com/discuz/api/;#proxy_pass http://172.19.218.250:8888/discuzz-service-1.0-SNAPSHOT/;#proxy_pass http://127.0.0.1:8820;client_max_body_size 100m;}#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;}
}

然后进入nginx容器中

docker exec -it 容器id /bin/bash

然后找到nginx在哪里,

whereis nginx

一般nginx路径在:/usr/local/nginx/

启动nginx/nginx路径立即停止nginx:nginx路径 -s stop优雅停止nginx:nginx路径 -s quit

可能中间报错可以用到的命令

重启dokcer命令

启动:
systemctl start docker
守护进程重启:
systemctl daemon-reload
重启docker服务:
systemctl restart docker / service docker restart
关闭:
docker service docker stop / docker systemctl stop docker

重启容器命令

docker restart 容器id

Docker 安装 Nginx 容器 (完整详细版)_Touch&的博客-CSDN博客_docker安装nginx

docker 安装 Nginx 并配置反向代理_疯狂的狮子Li的博客-CSDN博客_docker nginx 反向代理

最后导出镜像

docker commit 制作镜像docker commit -m="描述信息" -a="作者名字" 容器id 镜像名字:版本号

最后保存镜像到指定的位置

docker save 镜像名字:版本>/路径/存储的文件名字.tar

docker-前端部署相关推荐

  1. docker nginx部署前端项目

    最近一直在搞前后端分类,一直在想前端的html页面应该用什么部署 想来想去,如果用tomcat好像有点浪费资源,作为程序员自然要时时刻刻追求新的东西 一直以来都是在apache tomcat上面运行, ...

  2. 【前端部署第四篇】使用 Docker 构建缓存及多阶段构建优化单页应用

    大家好,我是山月,这是我最近新开的专栏:前端部署系列.包括 Docker.CICD 等内容,大纲图示如下: 示例代码开源,置于 Github 中,演示如何对真实项目进行部署上线. simple-dep ...

  3. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  4. Docker 方式 部署 vue 项目 (docker + vue + nginx)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.安装好 nginx . 2. 把 vue 项目的源码克隆到确定目录下.用 git 管理,所以直接 ...

  5. Docker 部署应用、jar 工程 docker 方式部署

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 把要部署的工程打成一个jar包.(我的工程叫 gentle ) 打 jar 的方法:超简单方法 ...

  6. Docker/Docker-Compose部署Django

    Docker/Docker-Compose部署Django前后不分离开发 什么是Dockerfile 类似于脚本,将docker镜像,使用自动化的方式实现出来. Dockerfile的作用 ​ 找一个 ...

  7. Docker - 使用Docker Compose部署应用

    简介 Docker Compose是一个基于Docker Engine进行安装的Python工具.该工具使得用户可以在一个声明式的配置文件中定义一个多容器的应用,在Docker节点上,以单引擎模式(S ...

  8. docker离线部署

    docker离线安装: 1.安装lrzsz上传文件 yum install -y lrzsz 2.安装解压zip yum install unzip zip 3.上传文件命令 rz 4.下载文件命令 ...

  9. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

  10. 前端部署及发布服务知识点

    静态资源组织 一个简单的页面 先从简单的静态页面开始,众所周知,前端资源由 HTML.JavaScript.CSS 三剑客组成,假设我们有一个简单的页面,用Nginx作为 Web 服务器,资源组织结构 ...

最新文章

  1. rs.Open SQL,Conn,adOpenStatic,adLockOptimistic
  2. mysql5.6.25密码_安装压缩版mysql5.6.25/ 5.7.14
  3. java mail 设置参数
  4. 大数据系列之分布式数据库HBase-1.2.4+Zookeeper 安装及增删改查实践
  5. python 集合、函数、文件操作
  6. \045在字符串中输出为%
  7. 保密检查usb痕迹清除_MD型卧式多级泵泵轴抱死故障原因分析和检查维修处理
  8. 21天学通c语言中用的编译器,21天学通C语言
  9. 批量更改文件的后缀名
  10. 《软件工程——实践者的研究方法》重难点复习笔记(第八章——理解需求)
  11. 整理英语句子:将首字母大写,单词之间只能一个空格,最后加句号
  12. Bailian3255 十进制到六进制【进制转换】
  13. 日期之 显示法定格式的日期
  14. 2013-8-25 上周工作总结
  15. 莫顿码(Morton code)介绍
  16. 从Python小白到第一个小游戏发布
  17. Element 单元格合计(多行合计、合计列合并)
  18. 高效操作字串的String Reference类
  19. java计算机毕业设计ETC用户自驾游推荐系统MyBatis+系统+LW文档+源码+调试部署
  20. ureport 报表合并单元格后双斜表头制作

热门文章

  1. 一、如何下载JDK?
  2. linux ftp服务器配置本地账号,CentOS7 下安装和配置本地用户登录VSFTP服务器
  3. 收音机磁棒天线4根接法_收音机磁性天线的使用和绕制方法
  4. SpringBoot线程池ThreadPoolTaskExecutor和@Async异步方法浅解及代码应用示例
  5. 「Harbor」- HTTP status 504 Gateway Time-out @20210318
  6. 手把手教你安装WordPress详细教程(图文)
  7. [PASECA2019]honey_shop
  8. 堆内存腐败异常(STATUS_HEAP_CORRUPTION---0xC0000374)
  9. 游戏发展演变:何谓第三代网游?
  10. Java 并发编程解析 | 如何正确理解Java领域中的内存模型,主要是解决了什么问题?