服务器docker搭建

简介: 基于docker搭建npm私服

一,从零开始搭建

官方提供了 docker 镜像,为了省事直接使用 docker 安装

1.1 安装docker

使用 yum-utils 管理 yum 仓库

# 安装yum-utils
yum install -y yum-utils

添加 docker 的 yum 源

# 添加docker-ce源 
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
# 更新yum缓存 
yum --enablerepo=updates clean metadata

安装 docker docker-compose 并运行

# 安装
yum -y install docker-ce docker-ce-cli docker-compose
# 启动
systemctl enable docker && systemctl start docker

如果提示 找不到docker-compose

试试:先执行 yum -y install epel-release 在执行安装命令

1.2 配置docker镜像源

已经配置过的直接下一步

# docker配置文件夹
mkdir /etc/docker
# 编辑配置文件
vi /etc/docker/daemon.json

修改 registry-mirrors 和 dns 配置

{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

重启docker

# 重启配置
systemctl daemon-reload
# 重启docker
systemctl restart docker

1.3 Verdaccio 容器配置

以安装到 /verdaccio 目录为例

安装共需要3个文件

  • docker-compose.yaml docker容器配置
  • config.yaml verdaccio配置文件
  • htpasswd 用户密码文件
# 目录结构   
└── /verdaccio 项目目录    
├──/conf 配置目录    
│  └── config.yaml verdaccio 配置文件    
│  └── htpasswd 用户密码文件    
├──/storage 包存放目录    
├──/plugins 插件目录    
└── docker-compose.yaml docker-compose 配置文件

网络异常,图片无法展示
|

  1. 首先创建 docker-compose.yaml 文件

docker-compose 是定义和运行docker容器的工具,通过 .yaml 文件配置容器

# 创建目录
mkdir /verdaccio
# 创建yaml文件
touch /verdaccio/docker-compose.yaml
  1. 修改容器配置
# 用vi编辑器打开文件
vi /verdaccio/docker-compose.yaml

输入以下内容

version: '3.1'
services:
  verdaccio:
    image: verdaccio/verdaccio
    container_name: "verdaccio"
    networks:
      - node-network
    environment:
      - VERDACCIO_PORT=4873
    ports:
      - "4873:4873"
    volumes:
      - "./storage:/verdaccio/storage"
      - "./conf:/verdaccio/conf"
      - "./plugins:/verdaccio/plugins"
networks:
  node-network:
    driver: bridge

version:docker对应版本号 (构建时出错请改小一点版本号)

image:verdccio镜像

三个 4873 是verdaccio访问端口号

volumes:是挂载物理机的目录到 docker 中

  • 第一行:存储目录,用于保存npm包
  • 第二行:配置文件目录,下一节 Verdaccio 配置 会讲解
  • 第三行:插件目录

1.4 Verdaccio 配置

官网配置文档👉 verdaccio

  1. 创建配置文件 config.yaml

Verdaccio 的配置文件,上行链路、插件、密码文件位置等参数都通过 config.yaml 配置

# 创建目录
mkdir /verdaccio/conf
# 创建文件
touch /verdaccio/conf/config.yaml
  1. 修改配置
# 用vi编辑器打开文件
vi /verdaccio/conf/config.yaml

输入以下内容

# npm包缓存目录
storage: /verdaccio/storage
# 插件目录
plugins: /verdaccio/plugins
# 密码文件
auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd
# 上行链路
uplinks:
  npmjs:
    url: https://registry.npmjs.org
    timeout: 10s
    cache: false
  yarn:
    url: https://registry.yarnpkg.com
    timeout: 10s
    cache: false
  npmmirror:
    url: https://registry.npmmirror.com
packages:
  # 带@的包只能登录后发布
  "@*/*":
    # 访问包的权限
    access: $all
    # 发布包的权限
    publish: $authenticated
    # 代理链
    proxy: npmjs npmmirror yarn
  # 普通包所有人都能发布
  "**":
    access: $all
    publish: $all
    proxy: npmjs npmmirror yarn
middlewares:
  # 启用 npm audit
  audit:
    enabled: true
logs:
  - { type: stdout, format: pretty, level: http }
#监听端口
listen: 0.0.0.0:4873

在 packages 中共有三种用户角色

角色

描述

$all

所有用户

$anonymous

匿名用户

$authenticated

登录的用户

在packages中可以定义某个包的发布下载规则

网站的标题、Logo等设置参考 github web字段

官方默认配置文件👉 github.com/verdaccio/v…

1.5 创建容器并启动

执行以下命令

# 进入verdaccio目录
cd /verdaccio
# 构建
docker-compose up --build

网络异常,图片无法展示
|

看到这样的提示后就可以打开浏览器访问verdaccio了

此时docker运行在前台,Ctrl + C 结束命令就无法访问


1.6 启动和停止

-d 是在后台运行的意思

docker-compose up -d

网络异常,图片无法展示
|

停止

# 查看运行中的容器
docker ps -a
# 找到pid (CONTAINER ID)
docker stop *****

💥 如果出现启动以后无法访问,需要升级内核之后重启

yum update

注意事项:

容器停止后再次启动会出现webUI界面包丢失的问题。

# 在/verdaccio目录下
# 查看运行中的容器
 docker-compose ps
#停止
docker-compose stop verdaccio
#重新启动
docker-compose start verdaccio
相关文章
|
1月前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
63 2
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
376 3
|
2月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
152 1
|
2月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
52 2
|
2月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
403 0
|
消息中间件 弹性计算 Java
阿里云ECS服务器安装docker教程(详细图文)
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。理由很简单,用了的人都说好用。在多系统的分布式项目中,往往传统的部署发包等操作,那是让每个上线的程序员恨的牙痒呀。通常都是通宵奋战,上生产解决各种部署发包问题。
阿里云ECS服务器安装docker教程(详细图文)
|
8天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
131 77
|
17天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
10天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
44 3
|
17天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
50 7