docker--构建本地私有仓库

目录

一、构建本地私有仓库

1、构建仓库

2、 配置镜像加速器

阿里云镜像加速器

官方镜像加速器

3、搭建私有仓库之 添加证书加密功能


一、构建本地私有仓库

1、构建仓库

删除多余的镜像

docker info
docker images
docker rmi 8f7284e35dbe   
docker images| grep webserver | awk '{system("docker rmi "$1":"$2"")}'  
docker images
docker ps -a
docker rm demo  
docker rmi webserver:v3 
docker images


 

docker search  registry
docker pull registry
docker images
docker history registry:latest 
docker run -d --name registry -p 5000:5000 registry
docker ps
docker tag busybox:latest  localhost:5000/busybox:latest
docker images
docker push localhost:5000/busybox:latest
docker rmi busybox:latest 
docker rmi localhost:5000/busybox:latest 
docker images
docker pull localhost:5000/busybox:latest
docker images

2、 配置镜像加速器

阿里云镜像加速器

cd /etc/docker/
ls
vim daemon.json  #配置阿里云镜像加速器
  {
    "registry-mirrors": ["https://w0wa6rnf.mirror.aliyuncs.com"]
  }
systemctl daemon-reload 
systemctl restart docker
docker info
docker images
docker pull nginx  #可以看到拉取速度很快
docker images

官方镜像加速器

vim daemon.json
  {
    "registry-mirrors": ["https://registry.docker-cn.com"]
  }
systemctl daemon-reload 
systemctl restart docker
docker info
docker rmi nginx:latest 
docker pull nginx  #再次拉取

 个人感觉还是阿里云镜像加速器更快点,所以改回使用阿里云镜像加速器

vim daemon.json 
  {
    "registry-mirrors": ["https://w0wa6rnf.mirror.aliyuncs.com"]
  }
systemctl daemon-reload 
systemctl restart docker
docker info


3、搭建私有仓库之 添加证书加密功能


从真机中把openssl11的包传输过来
server1:

创建加密认证的密钥

创建目录,保存认证和钥匙

yum install -y openssl11-1.1.1g-3.el7.x86_64.rpm openssl11-libs-1.1.1g-3.el7.x86_64.rpm
mkdir openssl11
cd openssl11/
mv /root/openssl11* .
cd ..
mkdir certs
ls

 生成密钥

openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -addext "subjectAltName = DNS:reg.westos.org" -x509 -days 365 -out certs/westos.org.crt

 查看密钥

ll certs/
ls
docker rm registry
docker run -d --restart=always -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -p 443:443 registry
docker ps
ls

vim /etc/hosts
  #给server1添加解析:reg.westos.org
docker images

docker tag localhost:5000/busybox:latest reg.westos.org/busybox:latest
docker push reg.westos.org/busybox:latest 
cd /etc/docker/
ls
mkdir certs.d
cd certs.d/
ls
mkdir reg.westos.org
ls
cd reg.westos.org/
cp /root/certs/westos.org.crt ca.crt
ls
pwd

cd
docker push reg.westos.org/busybox:latest
mkdir auth
yum install -y httpd-tools

 为admin用户和dmq用户添加认证信息和密码,并查看

htpasswd -cB auth/htpasswd admin
cat auth/htpasswd
htpasswd -B auth/htpasswd dmq
cat auth/htpasswd
ls

 删除之前的仓库信息

docker ps -a
docker rm -f f34bc66f4459

 重新拉起仓库容器

docker run -d --restart=always --name registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -p 443:443 -v /root/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry

 查看容器进程是否开启

docker ps

 查看日志,启动无异常

docker logs registry 
ls

docker images
docker volume  ls
docker volume prune 
docker history registry:latest 
docker volume  ls
docker push reg.westos.org/busybox:latest 
docker login reg.westos.org
docker push reg.westos.org/busybox:latest 
curl -u admin:westos -k https://reg.westos.org/v2/_catalog 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker-compose是一个用于定义和运行多个Docker容器的工具,可以用来部署Java项目。具体步骤如下: 1. 编写Dockerfile文件,用于构建Java应用程序的Docker镜像。 2. 编写docker-compose.yml文件,定义Java应用程序容器的配置和依赖关系。 3. 在本地使用docker-compose命令启动容器,测试Java应用程序是否能够正常运行。 4. 将Docker镜像上传到Docker Hub或私有仓库中。 5. 在目标服务器上安装Docker和docker-compose。 6. 从Docker仓库中拉取Java应用程序的Docker镜像。 7. 在目标服务器上使用docker-compose命令启动Java应用程序容器。 8. 验证Java应用程序是否能够正常运行。 以上是使用docker-compose部署Java项目的基本步骤,具体实现方式可以根据实际情况进行调整。 ### 回答2: Docker Compose 是一个使用 Docker 容器化部署简化工具,它可以帮助我们快速编排 Docker 容器环境。 准备工作: 1. 安装 Java 8 或以上版本 2. 安装 Docker 3. 安装 Docker Compose 步骤: 1. 在项目根目录下创建一个 docker-compose.yml 文件,文件中的内容类似如下: ``` version: "3" services: myapp: build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: - DATABASE_URL=jdbc:mysql://mysql/mydb - DATABASE_USER=root - DATABASE_PASSWORD=root depends_on: - mysql mysql: image: mysql:5.7 ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=mydb ``` 其中,有两个服务被定义,一个是 myapp 服务和一个 mysql 服务。myapp 使用当前目录中的 Dockerfile 来构建镜像,Dockerfile 是一个用来告诉 Docker 镜像如何构建的文件。在这个 example 中,myapp 镜像需要设置数据库连接信息,需要依赖一个名为 mysql 的服务。 2. 创建 Dockerfile 文件,在项目根目录创建 Dockerfile 文件,文件内容大致如下: ``` FROM openjdk:8-jre-alpine COPY target/myapp.jar myapp.jar CMD ["java", "-jar", "myapp.jar"] ``` 其中,FROM 声明使用基础镜像,COPY 告诉 Docker 将本地的 myapp.jar 文件复制到镜像中,并设置镜像启动时默认执行的命令。 3. 运行 docker-compose up,启动应用: ``` $ docker-compose up ``` 4. 访问应用 在浏览器中访问 `http://localhost:8080`,即可访问部署好的应用。 以上就是部署 Java 项目的 Docker Compose 部署简述。 ### 回答3: Docker Compose 是 Docker 容器编排工具,可以通过 YAML 文件定义一组容器并进行管理。因此,利用 Docker Compose 部署 Java 项目非常方便且易于管理。 首先,我们需要准备一个 Dockerfile。Dockerfile 指令统计展示如下: FROM openjdk:8-jdk-alpine WORKDIR /app COPY target/demo.jar /app EXPOSE 8080 CMD ["java", "-jar", "demo.jar"] 接下来,我们需要编写一个 docker-compose.yml 文件来定义一个 Docker 服务。docker-compose.yml 指令统计展示如下: version: '3' services: demo: build: context: . dockerfile: Dockerfile ports: - "8080:8080" restart: always 该文件共定义了一个服务,服务名为 demo,使用上述 Dockerfile 构建该服务,并将端口映射至本地主机的 8080 端口,并始终处于重新启动状态。 接下来,我们需要进入项目根目录,执行以下命令来启动服务: docker-compose up 这将会构建并启动服务。之后,你只需要访问本地主机的 8080 端口便可访问项目。 注意,本文提供的示例仅供参考,具体情况需要根据实际情况进行修改。 总之,Docker Compose 可以简化 Java 项目的部署和管理工作,为企业迅速迭代和成功上线提供帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值