代码编织梦想

一、其他服务器登录harbor

非本地服务器登录harbor,需要进行以下相关设置

1、修改docker.service配置文件

vi /lib/systemd/system//docker.service 加入域名
--insecure-registry www.harbor.com

保存退出后,执行下面命令:

a、systemctl daemon-reload
b、systemctl restart docker

2、修改hosts文件

vi /etc/hosts  加入ip + 域名   如192.16.138.139  www.harbor.com

3、浏览器输入https://+ip或者域名,可以进入harbor登录界面,首次登录,需注册账号。

二、将当前Linux工作环境制作成docker镜像

  1. 对系统进行压缩

    查看系统目录,最好提前清除不需要的内容,否则产生的镜像很大,可能导致容器起不来

    $ cd /
    $ ls
    bin  boot  data  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    /proc/sys/run/dev这几个目录都是系统启动时自动生成的,虽然也属于文件系统一部分,但是他们每次开机都会有变化,所以打包的时候就应该忽略它们 。

  2. tar 完成系统压缩包

    • 可以选择/根目录,然后--exclude排除不需要的目录
    • 也可以直接选择需要压缩的目录
    tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .
    
    or 
    
    tar -cvpf /tmp/system.tar bin data  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  root  sbin  srv  tmp  usr  var
    

    系统之间,可能有差异,根据自己使用的系统进行打包。

  3. 导入docekr

    $ docker import /tmp/system.tar Ubuntu:v1
    //Ubuntu:v1  是自定义的镜像和tag名称
    

    提示: 制作的镜像文件太大,会导致启动容器时候失败: Getting the final child’s pid from pipe caused “EOF”

三、docker的基本使用

  1. 登录镜像仓库

    sudo docker login -u 用户名 -p 登录密码 ip:端口/域名
    eg:
    sudo docker login -u admin -p 12345  www.harbor.com
    
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    
  2. 拉取镜像

    sudo docker pull 镜像名称
    eg:
    sudo docker pull Ubuntu
    docker images 查看拉取的镜像
    
  3. 使用镜像

    docker run -it 镜像名:tag/镜像id
    选项
    -i  交互式操作
    -t  终端
    -d  后台运行  
    
    

    进入容器后,就可以在容器内部进行操作,可以对改动后的容器打包上传到仓库。

  4. 从容器创建一个新的镜像

    在容器里做了一些配置后,可以将创建一个新的镜像

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    OPTIONS说明:
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。
    
  5. 对镜像进行打包

    a、sudo docker images   查看镜像信息
    b、sudo docker tag 镜像名/镜像ID www.xxx.com/test/镜像名称:tag (域名/镜像仓库名/镜像名)目的要知道镜像上传到哪,tag可以指定版本
    
  6. 上传镜像

    sudo docker push www.xxx.com/test/镜像名称
    The push refers to repository [www.xxx.com/test/镜像名称]
    5be351ff00ca: Pushed 
    ceaf9e1ebef5: Pushed 
    9b9b7f3d56a0: Pushed 
    f1b5933fe4b5: Pushed 
    v1: digest: sha256:4871feb25d52cd4275d97b63a85556043a3efee74349e008807383e1d7e9132f size: 1159
    
  7. 查看镜像信息

    1、使用images命令列出本地镜像      docker images
    2、使用inspect命令查看镜像详细信息  dockers inspect 镜像名
    
  8. 进入容器

    容器在后台运行,可以通过以下方式进入容器,输入exit退出容器时,容器不会关闭。

    docker exec -it 容器id cmd
    eg:
    docker exec -it 容器id /bin/bash
    
  9. 删除镜像

    1、docker stop $(docker ps -a -q)
    2、docker rm $(docker ps -a -q)  删除所有镜像
    3、docker rmi <image id>  删除指定镜像,可用docker images 查看镜像id
    4、docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 删除untagged images,也就是那些id为<None>的image
    5、docker rmi -f $(docker images -q) 强制删除所有镜像
    

错误集合

1、docker在服务器上登录时提示Error saving credentials: error storing credentials

或者 error saving credentials :exit status 1 out:“the connection is closed”

原因:无法存储信用凭证
解决办法: apt install gnupg2 pass
GnuPG是GNU Privacy Guard的缩写,它是一个完全开源自由的OpenPGP标准(由RFC4880定义)实现。pass 是 Linux上的一个简单的命令行密码管理器,它将密码存储在一个gpg加密后的文件里。这些加密后的文件很好地组织按目录结构存放。

2、admin用户登录,显示账号或密码错误,报401错误,unauthorized: authentication required,权限问题,其他管理员账号可以登录

原因:提示是没有权限,但真正的问题可能并不是,毕竟人家是系统用户
解决办法:删除所有harbor相关镜像,包括产生的数据什么什么的,就是恢复到harbor安装之前的状态,重新安装harbor,就没问题了。

3、Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json: dial unix /var/run/docker.sock: connect: permission denied

原因:权限问题
解决办法:使用root权限

4、docker ps -a 查看未启动容器,docker start 容器ID,容器起不来,状态未exit

原因:有些镜像启动,需要交互方式启动
解决办法:docker run -it 镜像名

5、 在导入镜像的时候出现问题 ”invalid reference format: repository name must be lowercase”

原因:命名不能出现大写字母
解决办法:把tar包的名字改为全小写即可
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38129681/article/details/128007344

使用Docker+Gitlab+Harbor+Jenkins+DockerCompose搭建CICD开发环境-爱代码爱编程

文章目录 一. 安装1. 安装Docker2. 安装DockerCompose3. 安装Harbor4. 安装Gitlab5. 安装Jenkins二. 问题1. 安装Harbor问题2. 配置gitlab问题 一. 安装 1. 安装Docker 安装最新版本的dockercurl -fsSL https://get.docker.com/

docker + gitlab + harbor + jenkins 搭建自动化部署-爱代码爱编程

1. 安装gitlab docker-compose.yaml(docker-compose自行了解) version: "3" services: gitlab: image: 'gitlab/gitlab-ce:12.9.0-ce.0' restart: always privileged: true

持续集成与持续交付——jenkins + gitlab + docker + harbor-爱代码爱编程

目录 一、jenkins调用本机docker1、配置jenkins + gitlab自动触发更新2、在server3上部署harbor仓库3、在jenkins上安装docker的插件并连接harbor4、在server2上安装daocker和git5、测试6、整体流程二、Jenkins调用远程docker主机1、准备虚拟机 server7,并安装d

【Jenkins】Jenkins + Docker + Docker Compose + Harbor 实现 Spring Boot 项目持续集成-爱代码爱编程

环境安装 安装 Docker 参考 Linux 安装 Docker 安装 Docker Compose 参考 安装 Docker Compose 安装 Jenkins 参考 Docker Compose 安装 Jenkins 安装 Harbor 镜像仓库 参考 Harbor Docker 镜像仓库的安装 以上安装完成后,需要在 Jenkin

Jenkins+docker + git + Harbor+微服务实现自动化部署过程-爱代码爱编程

搭建自动化部署过程 1.涉及工具2.自动化部署流程图3.在linux上安装Docker3.1 Docker 的三大核心概念:镜像,容器,仓库3.2安装Docker4 使用Docker搭建Jenkins4.1拉去Jenkins镜像4.2将docker工作目录对外挂载4.3对此目录开放权限4.4启动docker容器4.5运行成功后访问Jenkins4.

maven+harbor+docker环境配置-爱代码爱编程

window下maven+harbor+docker环境配置 1、启用windows功能 1、适用于Linux的windows子系统 2、虚拟机平台 2、安装wsl2 1、访问下面网址 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-2—u

jenkins+docker+harbor搭建-爱代码爱编程

jenkins+docker+harbor部署 经历了一周才搞定,中间的碰到的问题记录下来 1.jenkins的docker-compose 2.jenkins推送到docker私服 jenkins往harbor私服上推送的时候,报错 unix://localhost:80 no such file or directory,要在jenkins–

docker+harbor+gitlab+jenkins+sonarqube部署到项目发布-爱代码爱编程

详解:docker+harbor+gitlab+jenkins+sonarqube部署到项目发布 一.docker、docker-compose安装二.harbor安装(私有仓库)三.gitlab安装四.jenkins安装五.构建一个自由项目/maven项目1.构建一个自由项目2.构建一个maven项目六.pipeline流水线上sonarqube

Rancher + Harbor + Docker + k8s环境管理-爱代码爱编程

一、目标 192.168.239.155Docker|Rancher192.168.239.156Docker|Docker-compose|Harbor注:Harbor的所有服务组件都是在Docker中部署的,官方安装使用Docker-compose快速部署,所以我们需要安装Docker、Docker-compose。由于Harbor是基于Docker

轻松部署Jenkins+harbor+gitlab实现docker的CICD-爱代码爱编程

目录 总述一、环境二、步骤 总述 需求: 利用Jenkins+gitlab实现代码自动上线,自动部署服务到应用服务器 难点: 如何把新构建镜像自动拉取到应用服务器并自动部署容器? 一、环境 流程: 服务器列表提示:Jenkins、harbor、应用测试主机安装docker19.03.10。 角色主机名IP软件持续集成jenkins

jenkins + gitlab + docker + harbor 实现自动触发更新-爱代码爱编程

当使用微服务方案后,面临在大量的项目构建和部署工作,借助于jenkins的持续集成,可以快速把应用打包成docker镜像,实现自动部署,加快项目的迭代。 一、环境部署 系统IP主机名角色CentOS 7.4192.168.2.14Gitlab提交代码CentOS 7.4192.168.2.15jenkinsJenkins、dockerCent

从零开始安装部署Harbor(Docker+Docker-compose+Harbor)-爱代码爱编程

1.安装docker yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io sys

基于gitlab+jenkins+docker+harbor,ci/cd_大板鲫的博客-爱代码爱编程

参考: Centos7安装docker: Centos7安装docker_大板鲫的博客-CSDN博客 Centos7安装docker-compose: Centos7安装docker-compose_大板鲫的博客-CSDN博客_centos7 docker-compose Centos7安装Git: Centos7安装Git_大板鲫的博客-CS

基于gitlab+jenkins+docker+harbor+pipeline,ci/cd_大板鲫的博客-爱代码爱编程

参考: Centos7安装docker: Centos7安装docker_大板鲫的博客-CSDN博客 Centos7安装docker-compose: Centos7安装docker-compose_大板鲫的博客-CSDN博客_centos7 docker-compose Centos7安装Git: Centos7安装Git_大板鲫的博客-CS