Docker本地仓库简单使用一些例子

docker镜像命令

获取镜像:docker pull centos
查看镜像:docker images
查看镜像详细信息:docker inspect [NAME:tag]
搜索镜像:docker search [NAME:tag]
删除镜像:docker rmi [NAME:tag&ID]

​ -f:强制删除

创建镜像:docker commit
导入镜像:cat 镜像.tar |docker import - centos:7
存出镜像:docker save -o centos:7.tar centos7
载入镜像:docker load --imput cnetos7.tar
​ 或者:docker load < centos7.tar
上传镜像:docker push
添加标签后在上传,如下:
​ docer tag centos:7 mark/centos:7
​ docker push mark/centos:7

docker容器命令

新建容器:docker create -it centos:tag
启动容器:docker start NAME
创建并后台启动:docker run --name mynginx -d nginx
-d 守护进程模式

创建启动并连接容器并启动一个bash终端:docker run -it mynginx /bin/bash
当docker run来创建并启动容器时,Docker在后台运行操作包括:
1,检查本地是否存在指定镜像,不存在则从共有仓库下载
2,利用镜像创建并启动一个容器
3,分配一个文件系统,并在只读的镜像层外挂载一层可读写层
4,从宿主机配置的网桥借口中桥接一个虚拟借口到容器中
5,从地址池分配一个ip地址给容器
6,执行用户指定的应用程序
7,执行完毕后终止

其中-t选项让docker分配一个伪终端并绑定到容器的标准输出上,-i则让容器的标准输入保持打开
查看容器:docker ps -a
关闭容器: docker stop NAME

docker stop它首先会向容器发送一个SIGTERM信号,等一段时间后,默认10秒后,在发送SIGKILL来终止rongqi
启动容器:docker start NAME
强行终止:docker kill ID
进入容器运行命令:docker exec -it ID /bin/bahs
当然,也可以不进入容器运行命令:docker exec NAME ps

删除容器:docker rm ID
删除运行中的容器:docker rm -f ID
导出容器:docker export ID > name.tar
导入容器:cat name.tar | docker import - test/centos:7

创建和使用本地私有仓库:

1,下载安装registry

我们通过官方提供的registry镜像来简单搭建本地的私有仓库环境
docker run -d -p 5000:5000 registry
这将自动下载并启动一个registry容器,创建本地的私有仓库服务
默认情况下回创建在容器的/tmp/registry目录下,可以通过-v参数来讲镜像放在本地的指定路径上
下面例子将上传的镜像放到/opt/registry 目录
docker run -d -p 5000:5000 -v /opt/registry:/tmp/registry registry

[root@gitlab conf]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED            SIZE
registry                  latest              c6c14b3960bd        4 weeks ago         33.28 MB

2,确保registry是up状态

我们可以看到registry一件被run起来来

[root@gitlab conf]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
29c0811c9195        registry               "/entrypoint.sh /etc/"   17 minutes ago      Up 17 minutes       0.0.0.0:5000->5000/tcp   awesome_wescoff
240c99335256        marksugar/nginx        "/usr/local/nginx/sbi"   2 hours ago         Up 2 hours          0.0.0.0:81->80/tcp       mynginx
b889bfd7a6ee        marksugar/nginx:8.33   "/bin/bash"              21 hours ago        Up 7 hours          0.0.0.0:80->80/tcp       nginx
[root@gitlab conf]#

3,将镜像标记并上传

使用docker tag将一个镜像标记,格式如下:
10.10.239.222:5000/alpine,其中10.10.239.222是本地仓库地址,5000为仓库端口,alpine是镜像标签
这里的10.10.239.222可以是本地的ip也可以是域名,如:www.111cn.net

[root@gitlab conf]# docker tag benyoo/alpine:3.4.20160812 10.10.239.222:5000/alpine
当标记完成后,本地的images中会存放一个和标记名称一样的镜像,我们将这个镜像上传即可

[root@gitlab conf]# docker push 10.10.239.222:5000/alpine
The push refers to a repository [10.10.239.222:5000/alpine]
93d40cd73394: Pushed
4fe15f8d0ae6: Pushed
latest: digest: sha256:41250fea2bc5dfdc204d54e4d2108aae7a452876bed359ae277983aea4ae3e02 size: 739
[root@gitlab conf]#

4,使用本地仓库pull

尝试一次pull方才进行push到本地仓库的镜像,你会发现本地镜像速度比docker hub要快上很多

[root@localhost ~]# docker pull 10.10.239.222:5000/alpine
Using default tag: latest
latest: Pulling from alpine
Digest: sha256:41250fea2bc5dfdc204d54e4d2108aae7a452876bed359ae277983aea4ae3e02
Status: Downloaded newer image for 10.10.239.222:5000/alpine:latest
[root@localhost ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
marksugar/alpine            latest              07a4ff4374e1        23 hours ago        11.54 MB
debian                      latest              031143c1c662        29 hours ago        125.1 MB
marksugar/nginx             8.30                e50a274c5823        33 hours ago        13.77 MB
10.10.239.222:5000/alpine   latest              0ae37ed604b2        2 weeks ago         11.54 MB
benyoo/alpine               3.4.20160812        0ae37ed604b2        2 weeks ago         11.54 MB
nginx                       latest              0d409d33b27e        3 months ago        182.7 MB
[root@localhost ~]#

报错解决办法:

Error response from daemon: Get https://10.10.239.222:5000/v1/_ping: http: server gave HTTP response to HTTPS client
只需要两步即可:

1,Create or modify /etc/docker/daemon.json

[root@localhost ~]# echo '{ "insecure-registries":["10.10.239.222:5000"] }' > /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["10.10.239.222:5000"] }
2,重载docker
root@localhost ~]# systemctl restart docker

时间: 2024-09-24 15:37:24

Docker本地仓库简单使用一些例子的相关文章

CentOS 7.X 中Docker搭建本地仓库registry 以及报错解决

去docker hub下载镜像比较慢,而且自己内部的镜像一般要求对速度和安全性要求较高,于是就可以考虑搭建本地仓库registry来实现,下边简单介绍下步骤. 环境:centos 7.2 1,安装docker yum install docker -y systemctl start docker.service systemctl enable docker.service 2,搭建仓库 下载registry docker search registry [root@docker5 regis

maven本地仓库与远程仓库

在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径, 解读Maven在仓库中的存储路径: 1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将  "."  转换成 "/" ; example: org.testng --->o

基于OSS搭建跨区域部署的分布式Docker镜像仓库

基于OSS搭建跨区域部署的分布式Docker镜像仓库 Docker镜像是Docker的核心价值之一,Docker镜像仓库(Registry)是用于Docker镜像的管理和分发的基础设施.现在已经有了Docker Hub等多家公有镜像管理服务供应商,阿里云容器Hub服务也是您在云端的一个非常好的选择.但是有些情况,为了更加灵活的部署控制和一些管控要求,您也许会考虑在云端的部署一个私有镜像仓库. 为了满足异地容灾和就近访问等需求,需要在不同的区域(region)部署分布式Docker应用:在不同的r

Maven详解之仓库------本地仓库、远程仓库

在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方) 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径, 解读Maven在仓库中的存储路径: 1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将  "."  转换成 "/" ; example: org.testng --->o

搭建Docker私有仓库的详细教程

  1.Docker registry 说明 本文记录的个人完整搭建docker registry操作过程,官方虽然提供了Docker Hub作为一个公开的集中仓库,但是天朝的网络可想而知,第一次pull一个镜像不是失败就是时间很长,为了解决这个问题需要创建一个私有的仓库在本地pull 本地push.我使用的docker版本是:1.5.0 2.安装docker-registry 代码如下: docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=

创建Windows 2016 TP5 Docker本地虚拟机

本文讲的是创建Windows 2016 TP5 Docker本地虚拟机,[编者的话]继Windows 2016 TP5上的Docker初次体验之后,作者接着写了这篇创建本地虚拟机的文章,给出了Packer和Vagrant的用法,并详细说明了Packer的功能. 越来越多的人开始试用Windows Docker容器,这太棒了.无论是想了解Windows上所运行的Docker引擎的当前状态,还是想亲身体验一下Windows容器来,最新的Windows Server 2016 Technical Pr

使用install:file命令安装第三方jar到maven本地仓库,报错no pom

问题描述 使用install:file命令安装第三方jar到maven本地仓库,报错no pom 问题补充: 项目中要用到一个分词的jar包.于是我在晚上下了一个,本来是这样IK Analyzer 2012FF_hf1.jar, 为了符合maven install命令的规范,我随意加了一个版本号变为这样IK Analyzer 2012FF_1.0.1.然后切换到jar包所在文件夹,执行如图命令,爆出如图错误.查了百度,有说缺少pom.xml文件的,难道随便一个jar包安装到本地仓库,都要手写po

入侵检测-关于一个简单的堆栈例子

问题描述 关于一个简单的堆栈例子 我在读一本入侵检测技术的书,看到一个简单的堆栈溢出示例,看不懂,请各位大神解释一下是什么意思 解决方案 简单说就是通过程序编写的不严格,使局部变量溢出从而覆盖掉堆栈上的返回值.调用一个函数时,以__stdcall为例,先把参数入栈,然后时返回地址入栈, CPU执行现场跳转到函数中 ,然后是ebp寄存器入栈,随后局部变量和寄存器入栈,不同的编译器可能会有所差别,比如微软CL编译器在处理Debug和Release时是有一些区别的,但大致是相同的,溢出攻击,简单说就是

ajax-jQ插件:pjax的使用方法能帮忙写个简单的小例子吗?C币全都给你啦!谢谢

问题描述 jQ插件:pjax的使用方法能帮忙写个简单的小例子吗?C币全都给你啦!谢谢 将jquery.pjax.js部署到你的页面中,将需要使用pjax的a链接进行绑定(不能绑定外域的url),如: $.pjax({ selector: 'a', container: '#container', //内容替换的容器 show: 'fade', //展现的动画,支持默认和fade, 可以自定义动画方式,这里为自定义的function即可. cache: true, //是否使用缓存 storage