镜像制作上传Harbor

  • 环境准备
  • 前提配置
  • 镜像制作
  • 终端
  • 文件复制
  • 保存容器成镜像
  • 容器之间访问
  • 图形化镜像
  • 上传镜像到Harbor仓库
  • 前提配置
  • 上传镜像
  • 镜像迁移
  • 清理容器及镜像
  • 清理容器
  • docker 常用命令


环境准备

环境

centos

docker1.8+

harbor1.8

1、安装docker脚本,必须是centos7

curl -sSL https://ssgssg.obs.cn-south-1.myhuaweicloud.com/docker/docker_install.sh | sh

前提配置

1、关闭防火墙

systemctl stop firewalld.service &  systemctl disable firewalld.service

2、查看防火墙状态

systemctl status firewalld.service

3、如下图所示已关闭

harbor 大镜像上传不成功 上传镜像到harbor_harbor 大镜像上传不成功

镜像制作

终端

1、运行基础镜像以centos7为例

docker run -d -it --name centos7 harbor.org/test/centos-7:v1

命令

说明

docker run

运行一个容器

-d -it

后台运行返回一个ID

–name

容器名称

harbor.org/test/centos-7:v1

运行镜像

harbor 大镜像上传不成功 上传镜像到harbor_上传_02

2、查看运行

docker ps |grep centos7

harbor 大镜像上传不成功 上传镜像到harbor_docker_03


3、进入容器

docker exec -it centos7 bash

文件复制

1、复制文件到容器,把test.txt 文件复制到容器/root/目录

touch  test.txt
docker cp test.txt centos7:/root/

命令

说明

docker cp

容器 复制

test.txt

要复制的文件

centos7

容器名称,指定容器ID也可以

:/root/

容器目录

2、容器文件复制至宿主机

docker cp centos7:/root/anaconda-ks.cfg /home/

命令

说明

docker cp

容器复制

centos7

容器

:/root/anaconda-ks.cfg

复制出来的文件

保存容器成镜像

docker commit -m "这是一个测试镜像" centos7 harbor.org/test/centos-7:v1.0

命令

说明

docker commit

保存镜像

-m

说明

centos7

要保存的容器

harbor.org/test/centos-7:v1

保存成镜像与版本

harbor 大镜像上传不成功 上传镜像到harbor_centos_04

容器之间访问

1、创建网络

docker network create testnet

harbor 大镜像上传不成功 上传镜像到harbor_容器_05

2、查看网络

docker network ls

harbor 大镜像上传不成功 上传镜像到harbor_容器_06

3、运行两个容器进行测试

docker run -d  -it --privileged=true --name centos1  --network testnet --network-alias centos1 -p 18081:8080 harbor.org/test/centos-7:v1.0
docker run -d  -it --privileged=true --name centos2  --network testnet --network-alias centos2 -p 18082:8080 harbor.org/test/centos-7:v1.0

命令

说明

docker run -d -it

在后台运行一个容器

–privileged=true

给容器root权限

–name centos2

容器名称为centos2

–network testnet

使用 testnet 网络

–network-alias centos2

给当前容器网络取一个别名(可以通过一个别名直接访问)

-p 18082:8080

放开端口

harbor.org/test/centos-7:v1

引用镜像

4、进入容器

docker exec -it centos1 bash

5、测试是否访问

ping centos2

harbor 大镜像上传不成功 上传镜像到harbor_上传_07


6、也可以进入centos2容器测试访问centos1容器,同上

harbor 大镜像上传不成功 上传镜像到harbor_centos_08

图形化镜像

1、运行容器

docker run -d --name centos-vnc --privileged=true -p 15901:5901  harbor.org/base/centos7_vnc_desktop:v1.0

命令

说明

docekr run

运行一个容器

–name centos7-vnc

容器名称为centos7-vnc

–privileged=true

给容器root权限

-p 15901:5901

容器开发端口15901 宿主机端口,5901容器端口(多个端口可以再 -p )

harbor.org/base/centos7_vnc_desktop:v1.0

运行容器用的镜像

2、查看是容器

harbor 大镜像上传不成功 上传镜像到harbor_容器_09

3、用工具连接桌面,网站下载vnc工具

输入对应的IP及端口

vnc密码与容器root密码统一为不能修改; password

harbor 大镜像上传不成功 上传镜像到harbor_docker_10


harbor 大镜像上传不成功 上传镜像到harbor_容器_11

上传镜像到Harbor仓库

前提配置

1、配置镜像仓库,如没有这个文件可创建 /etc/docker/daemon.json

{
      "insecure-registries": ["harbor.org"]
    }

harbor 大镜像上传不成功 上传镜像到harbor_docker_12


2、配置生效

systemctl daemon-reload
service docker restart

3、添加解析:/etc/hosts

把对应的IP(注IP修改成自己Harbor对应的IP地址)解析对应的域名,如图所示:

harbor 大镜像上传不成功 上传镜像到harbor_容器_13


4、登录harbor仓库

docker login harbor.org

5、输入 用户及密码,如图所

harbor 大镜像上传不成功 上传镜像到harbor_centos_14

上传镜像

1、浏览器 登录harbor仓库:刚刚制作的镜像项目名称为:test,我们在harbor仓库中也要有test这个项目,没有就创建要上传的镜像项目

harbor 大镜像上传不成功 上传镜像到harbor_centos_15

docker push harbor.org/test/centos-7:v1.0

2、上传完成后就可以是仓库中查看到

harbor 大镜像上传不成功 上传镜像到harbor_harbor 大镜像上传不成功_16

6、说明 :

命令

说明

docker push

docker 命令

harbor.org

仓库地址

centos-7

镜像名称


跟着是版本号

v1.0

镜像版本

镜像迁移

1、镜像打包成为压缩文件

docker save -o my_centos7.tar harbor.org/test/centos-7:v1.0

2、导入镜像压缩文件

docker load -i my_centos7.tar

清理容器及镜像

清理容器

1、必需先停止容器才可以删除镜像

docker stop centos7 centos-vnc
docker rm centos centos-vnc

2、删除本地镜像,

docker rmi harbor.org/test/centos-7:v1.0

docker 常用命令

1、查看所有的镜像
docker images

2、查看所有运行容器

docker ps

3、查看所有的容器

docker ps -a

4、查看最近运行的一个容器

docker ps -l

5、复制文件,把文件复制到容器中

docker cp 文件 容器名称:容器目录

6、复制文件,把容器文件复制到本机

docker cp 容器名称:容器目录及文件 本机目录

7、镜像重新命名

#docker tag c12a9c5c3a11 harbor.org/test/centos-7:v1.0
docker tag 镜像ID 镜像与版本

8、停止容器

#docker stop cetnos1
docker stop 容器名称|容器ID

9、删除容器

#docker rm cetnos1
docker rm 容器名称|容器ID

10、删除镜像

docker rmi 镜像名称加版本

11、退出容器

#有时候退出一次不行,要再退出一次
exit