平台 -- 镜像平台 Registry

什么是 Registry ? Registry 的安装


官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要 Docker Registry,它可以用来存储和管理自己的镜像。

安装

cd /usr/local/docker/registry
vi docker-compose.yml

配置docker-compose.yml

    version: '3.1'
    services:
      registry:
        image: registry
        restart: always
        container_name: registry
        ports:
          - 5000:5000
        volumes:
          - /usr/local/docker/registry/data:/var/lib/registry

测试

启动成功后需要测试服务端是否能够正常提供服务

ip:port/v2/ 访问返回空 json

Registry 客户端配置和使用


配置/etc/docker/daemon.json追加如下节点

{..."insecure-registries": ["ip:port"]}

重启服务

systemctl daemon-reload
systemctl restart docker

使用方法

## 拉取一个镜像
docker pull tomcat
## 标记本地镜像并指向目标仓库(ip:port/image_name:tag,该格式为标记版本号)
docker tag tomcat 192.168.0.108:5000/tomcat
## 提交镜像到仓库
docker push 192.168.0.108:5000/tomcat

Registry WebUI


私服安装成功后就可以使用 Docker 命令行工具对 registry 做各种操作了。然而不太方便的地方是不能直观的查看 registry 中的资源情况。如果可以使用 UI 工具管理镜像就更好了。

修改docker-compose.yml

  frontend:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8082:80
    volumes:
      - ./certs/frontend.crt:/etc/apache2/server.crt:ro
      - ./certs/frontend.key:/etc/apache2/server.key:ro
    environment:
      - ENV_DOCKER_REGISTRY_HOST=192.168.0.108
      - ENV_DOCKER_REGISTRY_PORT=5000

一次构建,到处运行


1 上传代码

GitLab上传代码,创建一个工程获取到ssh地址

git clone ssh://[email protected]:2222/laoshiren/myshop.git

将代码全部复制到 myshop中。

git add .
git commit -m "init commit"
git push

2 构建 Docker 镜像准备

添加 maven的环境变量

export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export PATH=$MAVEN_HOME/bin:$PATH:$MAVEN_HOME/bin

安装javamaven的运行需要依赖java,我安装的是jdk-u152-linux-x64.tar.gz

export JAVA_HOME=/usr/local/jdk1.8.0_152
export JRE_HOME=/usr/local/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

所以最后的/etc/profile 的样子应该是

export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export JAVA_HOME=/usr/local/jdk1.8.0_152
export JRE_HOME=/usr/local/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$PATH:$MAVEN_HOME/bin
source /etc/profile

执行java -versionmvn -v 应该有对应的版本号。

3 构建镜像

target文件打 tar

cd /usr/local/docker
mkdir image
## 打包
cd /usr/local/docker/myshop
cd my-shop-web/target/my-shop-web-1.0.0-SNAPSHOT/
tar -zcvf myshop.tar.gz .
mv myshop.tar.gz ../../../image

编写Dockerfile

vi Dockerfile

使用 Dockerfile 构建镜像

FROM tomcat 
WORKDIR /usr/local/tomcat/webapps/ROOT
RUN rm -fr *
ADD myshop.tar.gz /usr/local/tomcat/webapps/ROOT
RUN rm -fr myshop.tar.gz
WORKDIR /usr/local/tomcat

docker build -t 192.168.0.108:5000/myshop .

访问http://192.168.0.108:5000/v2/myshop/tags/list可以查看是否存在这个镜像

换一台装了Docker的电脑
创建docker-compose.yml

vi docker-compose.yml
version: '3.1'
services: 
  myshop:
    restart: always
    image: 192.168.0.108:5000/myshop
    container_name: myshop
    ports:
      - 80:8080

保存后运行

docker-compose up -d

能下载基本就没什么问题。访问服务

总结


5.4节是综合1-5章内容的操作

主要是创建工程到部署的一系列操作,但是操作还是太多了,又是上传,又是干嘛干嘛的,太繁琐了。能不能再简单一点?GitLab-Runner 就帮我们完成了这些操作。

发布了27 篇原创文章 · 获赞 4 · 访问量 916

猜你喜欢

转载自blog.csdn.net/weixin_42126468/article/details/103481552
今日推荐