docker 镜像创建、群晖私有镜像库建立、推送、http拉取

docker 镜像创建、推送、群晖镜像库建立、http拉取

创建

镜像build

  • dockerfile
# python-Nodejs 服务镜像
# - https://hub.docker.com/
FROM nikolaik/python-nodejs:latest

USER pn
WORKDIR /home/pn/app

# 复制项目文件到容器中的工作目录 .所有文件在同级目录
COPY ./api .
COPY ./server .
COPY ./run.sh .

# 创建log目录
RUN mkdir -p /home/pn/app/log

# 设置环境变量
ENV NODE_ENV=production

# 安装 Node.js 依赖
RUN npm install

# 安装 Python 依赖
RUN pip install -r requirements.txt

ENTRYPOINT ["/home/pn/app/run.sh"]
  • 同级目录创建镜像
docker build -t="test/test_api:v2" .

运行测试

# 运行
docker run -d -p 8880:8880 --name test_api test/test_api:v2
# 查看运行的容器
docker ps
# 查看容器日志 - 显示id为841的容器最后50行日志 id更换为docker ps内看到的实际容器id前三位
docker logs -f -t --tail 50 841
# 进入容器命令行bin/sh、bash、sh、/bin/bash等按需修改
docker exec -it 841 /bin/sh

打包tag命名为远端名称

docker tag test/test_api:v2 域名或IP:端口/test_api test/test_api:v2

群晖创建私有镜像库

  • 下载registry镜像
    下载registry镜像
  • 开启群晖ssh开启群晖ssh
  • 访问后台添加认证相关信息
# 群晖管理员用户 ssh 到群晖后台
cd /volume1/docker  # 此处docker目录为实现在"控制面板"->"共享文件夹"处添加的
mkdir auth # 创建auth目录
htpasswd -Bbn 修改为要配置的用户名 修改为要配置密码 > auth/htpasswd
# 查看是否正常生成
cat auth/htpasswd
配置的用户名:$2y$05$F6pGO**************ProGnowwamFvVfTDdX7DvOEOcyTnUXi
  • 创建容器
# 端口
5000  5000  TCP
# 存储空间
/docker/registry1    /var/lib/registry
/docker/auth    /auth
# 环境
PATH    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
REGISTRY_AUTH    htpasswd
REGISTRY_AUTH_HTPASSWD_REALM    Registry Realm
REGISTRY_AUTH_HTPASSWD_PATH     /auth/htpasswd
# 其余按需修改 或保持默认

在这里插入图片描述

  • 创建完成后启动

推送

  • 修改文件
# windows下 搜索daemon.json 一般位于C盘用户目录/.docker/下
cat /etc/docker/daemon.json
  • 添加内容
 "insecure-registries":"域名或IP:端口" // 私服镜像地址,写进配置文件可解决默认采用https的情况,找了很多文章,测试下来只有修改配置文件是有效的...
  • 重启docker服务
# linux如下,windows重启docker-desktop
systemctl restart docker
  • 进行推送
docker push 域名或IP:端口/test_api test/test_api:v2

切换服务器后拉取镜像验证

  • 认证登陆
docker login 域名或IP:端口
  • 拉取查看镜像
witt@test-System:~$ docker pull 域名或IP:端口/test/test_api:v2
v2: Pulling from test/test_api
71215d55680c: Pull complete
3cb8f9c23302: Pull complete
5f899db30843: Pull complete
567db630df8d: Pull complete
Digest: sha256:4c70d49d35a12199************************ad17534cbfa950eb26ce
Status: Downloaded newer image for 
域名或IP:端口/test/test_api:v2
witt@test-System:~$ docker images
REPOSITORY                                      TAG       IMAGE ID       CREATED          SIZE
rvinstall                                       latest    ef4ba863c29d   46 minutes ago   1.37GB
域名或IP:端口/test/test_api                       v2        8410cec226d4   9 days ago       1.39GB
hello-world                                     latest    9c7a54a9a43c   11 months ago    13.3kB
  • 运行测试命令集
# 运行 添加自动重启项 --restart=always
docker run -d -p 8880:8880 --name test_api  --restart=always test/test_api:v2
# 查看运行的容器
docker ps
# 查看容器日志 - 显示id为841的容器最后50行日志 id更换为docker ps内看到的实际容器id前三位
docker logs -f -t --tail 50 841
# 进入容器命令行/bin/sh、/bin/bash等按需修改
docker exec -it 841 /bin/sh
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值