当前位置:   article > 正文

Docker & DockerCompose & Harbor_harbor和docker版本的兼容

harbor和docker版本的兼容

        Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

1. 卸载旧版本

  1. # 如果安装了这些,请卸载它们以及相关的依赖项。
  2. sudo yum remove docker \
  3. docker-client \
  4. docker-client-latest \
  5. docker-common \
  6. docker-latest \
  7. docker-latest-logrotate \
  8. docker-logrotate \
  9. docker-engine

2. 设置存储库

  1. # 安装yum-utils包(提供yum-config-manager 实用程序)并设置存储库。
  2. sudo yum install -y yum-utils
  3. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. # 国内可使用阿里云存储库
  5. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  6. # 更新源
  7. yum makecache fast
  8. 常见问题: yum makecache: error: argument timer: invalid choice: 'fast' (choose from 'timer')
  9. 解决方案:使用 yum makecache 即可;

3. 安装 Docker 引擎

  1. # 安装最新版本的 Docker Engine、containerd 和 Docker Compose
  2. sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  3. 常见问题: try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages
  4. 解决方案:sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allorwerasing

 4. 启动 Docker

  1. # 启动docker
  2. sudo systemctl start docker
  3. # 开机启动docker
  4. sudo systemctl enable docker
  5. # 查看docker版本号
  6. docker --version

5. 镜像操作

  1. # 下载镜像 若不指定tag 默认使用latest (Using default tag: latest)
  2. docker pull name:tag
  3. # 以nginx为例
  4. docker pull nginx
  5. # 指定nginx的版本号
  6. docker pull nginx:1.23
  7. # 查看本地已经下载的镜像
  8. docker images
  9. # 删除镜像
  10. docker rmi imageId
  11. # 强制删除镜像
  12. docker rmi -f imageId

6. 镜像启动

  1. # 启动一个名为test-nginx的容器
  2. # -d 表示后台启动 -p表示端口映射 宿主机端口: 容器内部端口
  3. docker run --name test-nginx -d -p 8080:80 nginx
  4. # 前台启动退出后将删除容器
  5. docker run --rm test-nginx -d -p 8080:80 nginx
  6. # 批量端口映射
  7. -p 8080-9090:8080-9090
  8. # 主机网络映射 (安全系数低不建议使用)
  9. docker run --rm --network host --name test-nginx nginx

7. 挂载目录

  1. # 通过 -v /data:/usr/share/nginx/html 来指定需要挂载的目录
  2. # /data 为宿主机的目录,
  3. # /usr/share/nginx/html 为容器内的目录
  4. # 将当前目录下的data目录挂载到容器内的 /usr/share/nginx/html 目录
  5. docker run --name test-nginx2 -d -p 8081:80 -v /data:/usr/share/nginx/html nginx

8. 查看日志

  1. # 可通过容器ID或者名称查看
  2. docker logs -f test-nginx

9. 容器操作

  1. # 进入容器内部 -i 标准输入 -t 终端
  2. docker exec -it test-nginx sh
  3. # 退出容器内部
  4. exit
  5. # 删除容器 (如果容器在运行中则无法删除,需要先关闭容器)
  6. docker rm test-nginx
  7. # 关闭容器
  8. docker stop test-nginx
  9. # 强制删除容器
  10. docker rm -f test-nginx

10. 网络操作

  1. # 用于查看docker基础信息
  2. docker inspect test-nginx
  3. # 镜像 busybox 工具用于测试比较方便 --link 关联到其他主机(ping test-ngixn)
  4. docker run -it --name test-nginx2 --link test-nginx busybox sh

11. Dockerfile

  1. # 定制的镜像都是基于 FROM 的镜像, nginx 就是定制需要的基础镜像 --platform 指定平台
  2. FROM --platform=linux/arm64 nginx
  3. # 容器元信息 Metadata 类似于代码注释
  4. LABEL version="1.0"
  5. LABEL maintainer="xxx@163.com"
  6. # Docker采用了分层技术 一条RUN命令就是一层
  7. # 对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行
  8. RUN yum update && yum install -y vim \
  9. Python-dev
  10. # 改变目录,建议使用绝对路径 若路径不存在则自动创建
  11. WORKDIR /root
  12. # 添加到根目录
  13. COPY test.tar.gz /
  14. # 添加到根目录并解压 (需要添加并解压即用ADD)
  15. ADD test.tar.gz /
  16. # 环境变量 (推荐使用环境变量增强可维护性) 比如设置Mysql版本号为 5.7
  17. # 在后续的指令中可以通过 $MYSQL_VERSION 引用
  18. ENV MYSQL_VERSION 5.7
  19. # EXPOSE 仅仅只是声明端口 对外暴露80和443端口
  20. EXPOSE 80
  21. EXPOSE 443

 12. 自定义Dockerfile

  1. # 基础镜像
  2. FROM nginx:1.23
  3. # 指定语言
  4. ENV LANG en_US.UTF-8
  5. # 添加 index.html 到容器中的 /usr/share/nginx/html 目录
  6. ADD index.html /usr/share/nginx/html
  7. # 申明端口 暴露80和443端口
  8. EXPOSE 80
  9. EXPOSE 443

13. 构建镜像

  1. # 在 Dockerfile 文件的存放目录下,执行构建动作。
  2. # 注:最后的 . 代表本次执行的上下文路径
  3. # 上下文路径是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
  4. # 注:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
  5. # 通过目录下的 Dockerfile 构建一个 nginx:0.0.1(镜像名称:镜像标签)。
  6. docker build -t nginx:0.0.1 .

14. DockerHub

  目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。

14.1 、注册账号

 在 Docker Hub 免费注册一个 Docker 账号。

 

 14.2 、上传自定义镜像

  1. # 登录dockerhub
  2. docker login
  3. # 注意要保证image名字 格式: 仓库名/镜像名称:镜像标签
  4. docker tag nginx:0.0.1 nginx/nginx:0.0.1
  5. # 推送docker image到dockerhub
  6. docker push nginx/nginx:0.0.1
  7. # 登录dockerhub官网检查镜像是否上传完成
  8. # 删除本地镜像
  9. docker rmi nginx/nginx:0.0.1
  10. # 测试下载仓库镜像文件
  11. docker pull nginx/nginx:0.0.1

 15. DockerCompose

        Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

  15.1 、下载

下载地址: https://github.com/docker/compose/releases

命令下载:curl -L https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-`uname -s`-`uname -m` -o  /usr/local/bin/docker-compose

注:根据自己的环境选择下载不同的包,这里是linux环境所以选择docker-compose-linux-x86_64

 15.2 、如何安装

  1. ### 手动下载 ###
  2. # 将文件上传到服务器后重命名为 docker-compose
  3. mv docker-compose-Linux-x86_64 docker-compose
  4. # 创建目录
  5. mkdir /usr/local/bin/
  6. # 将文件移动到/usr/local/bin目录下
  7. mv docker-compose /usr/local/bin
  8. # CURL下载
  9. curl -L https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-`uname -s`-`uname -m` -o  /usr/local/bin/docker-compose
  10. # 赋予文件可执行权限
  11. chmod +x /usr/local/bin/docker-compose
  12. # 查看版本号
  13. docker-compose version

  15.3 、示例应用

  15.4 、compose文件

  15.4 、部署应用

  1. # 构建镜像
  2. docker-compose build
  3. # 启动服务
  4. docker-compose up -d
  5. # 停止服务(--rmi all 删除所有镜像 -v 删除所有挂载)
  6. docker-compose down --rmi all -v
  7. # 查看日志
  8. docker-compose logs -f

  15.4 、部署测试

 16. Harbor

       Harbor是VMware公司开源了企业级Registry项目, 其的目标是帮助用户迅速搭建一个企业级的Docker registry服务。

 16.1 、如何下载

官网地址:https://goharbor.io/

下载地址:https://github.com/goharbor/harbor/releases

 16.2 、安装前提(以安装Harbor 2.6 + 为例)

SoftwareVersionDescription
Docker engineVersion 17.06.0-ce+ or higherFor installation instructions, see Docker Engine documentation
Docker ComposeVersion 1.18.0 or higherFor installation instructions, see Docker Compose documentation
OpensslLatest is preferredUsed to generate certificate and keys for Harbor

 16.3 、开始安装

  1. # 将下载的文件上传至服务器后解压
  2. tar -zxvf harbor-offline-installer-v2.5.3.tgz
  3. # 进入harbor目录
  4. cd harbor
  5. # 重命名harbor.yml.tmpl文件为harbor.yml
  6. mv harbor.yml.tmpl harbor.yml
  7. # 编辑harbor.yml
  8. vim harbor.yml
  9. # 更改 hostname 为 IP 地址
  10. hostname: xxx.xx.xx.xxx
  11. # 本次安装无需HTTPS 所以注释HTTPS相关的配置
  12. #https:
  13. # https port for harbor, default is 443
  14. # port: 443
  15. # The path of cert and key files for nginx
  16. # certificate: /your/certificate/path
  17. # private_key: /your/private/key/path
  18. # 执行安装脚本 (默认安装后会自动启动harbor)
  19. sh install.sh
  20. # 启动harbor服务
  21. docker-compose up -d

安装成功如下图图示: 

        

  16.4 、访问测试

访问地址 :http://ip:prot

用户名     :admin

密码         :Harbor12345

16.5 、公私有库

注: 公开库上传需登录认证,下载无需登录认证,私有库上传下载都需要登录认证。

如下图所示,新建项目时 访问级别默认为私有的, 若创建公开库,请勾选公开选项。

16.6 、Docker接入Harbor私服 

  1. # 编辑daemon.json
  2. vim /etc/docker/daemon.json
  3. # 加入insecure-registries配置 数组中是harbor的IP地址
  4. {
  5. "insecure-registries": ["192.168.124.9"]
  6. }
  7. # 重启docker
  8. systemctl restart docker

16.7 、上传下载

推送命令格式可以在 Harbor 中的 项目 --> 指定项目 --> 镜像仓库 --> 推送命令中可见。

标记镜像格式:

docker tag SOURCE_IMAGE[:TAG] 192.168.115.8/public/REPOSITORY[:TAG]

推送镜像格式:

docker push 192.168.115.8/public/REPOSITORY[:TAG]

  1. # 登录
  2. docker login 192.168.115.8
  3. # 在公开项目中标记镜像
  4. docker tag nginx:latest 192.168.115.8/public/nginx:0.0.1
  5. # 推送镜像至公开项目中
  6. docker push 192.168.115.8/public/nginx:0.0.1
  7. # 在私有项目中标记镜像
  8. docker tag mysql:5.7 192.168.115.8/private/mysql:0.0.1
  9. # 推送镜像至私有项目中
  10. docker push 192.168.115.8/private/mysql:0.0.1
  11. # 从私服拉取镜像
  12. docker pull 192.168.115.8/private/mysql:0.0.1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/582529
推荐阅读
相关标签
  

闽ICP备14008679号