Docker(Linux)

关于Docker

Docker 是一个应用打包、分发、部署的工具,包括镜像Image、容器Container、仓库Repository

  • 镜像:可以理解为软件安装包,可以方便的进行传播和安装。
  • 容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
  • 仓库:镜像便于传播,而仓库就是专门用来传播这些镜像的地方,他有点类似与Github。

安装Docker(Linux)

安装docker

yum install docker-ce docker-ce-cli containerd.io

image.png

查看Docker版本

docker -v

image.png

启动Docker

systemctl start docker   #启动
systemctl enable docker  #自启

image.png

配置下载docker镜像的仓库

docker的默认仓库Docker Hub下载速度在国内很慢,所以需要替换为阿里云的仓库。

  • 打开阿里云搜索容器,选择容器镜像服务

image.png

  • 点击镜像加速器

image.png

  • 根据页面提示输入以下指令,注意registry-mirrors的地址每个人都不一样,要查看页面上显示的地址。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["xxxxxxxxxxxxxxx"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

image.png

拉取镜像

docker pull nginx

image.png

启动容器

docker run -d --name nginx01 -p18880:80 nginx

8db326966c6e2bb6f256c195691f823.png
image.png

前端Docker部署

打包前端应用

执行前端的打包命令,生成静态文件目录。

npm run build

image.png

生成Dockerfile

FROM nginx:latest
 
COPY ./dist /usr/share/nginx/html/test/
COPY ./nginx.conf /
#构建自定义环境变量
CMD envsubst < /nginx.conf > /etc/nginx/nginx.conf \
	&& cat /etc/nginx/nginx.conf \
	&& nginx -g 'daemon off;'

Dockerfile常用命令如下:
FROM —指定基础镜像
MAINTANIER --提供Dockerfile 制作者提供本人信息
COPY --把宿主机中的文件复制到镜像中去
ADD --类似COPY命令
WORKDIR --指定工作目录
VOLUME --卷
EXPOSE --为容器打开指定要监听的端口以实现与外部通信
ENV --指定环境变量

nginx.conf文件配置

user nginx;
worker_processes  1;

events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  #超时时间
  keepalive_timeout  65;

  server {
    #监听端口
    listen       80;
    #服务名,可通过此名称访问页面
    server_name  localhost;

    location ^~ /test{
      root  /usr/share/nginx/html;
      #设置访问端口首页
      index  index.html index.htm;
    }
    #设置报错跳转页面
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
  }
}

最后将三个文件打包:

image.png

构建镜像

docker build -t test:1.0

运行镜像

docker run test:1.0 -p 18880:80

总结

将开发好的项目打包成Docker镜像(可以理解为软件安装包),在各种服务器上只需要一个命令就能部署好,确保了不同机器下都是一致的运行环境,而且Docker可以创建多个容器,不同容器可以互相通信,比如前端和后端的服务,可以创建虚拟网络docker network create test-net,此时两个容器在执行docker run 的时候指定同一个虚拟网络test-net即可互相通信。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值