从零搭建docker私有仓库的步骤

 更新时间:2018年07月23日 11:25:50   作者:木子昭  
这篇文章主要介绍了从零搭建docker私有仓库的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

实验环境:

  • centos7 64位
  • ubuntu16.04 64位(用于测试私有仓库)

本文分为四个部分:

第一部分: 安装docker
第二部分: 镜像的操作
第三部分: 容器的操作
第四部分: 私有仓库的创建

第一部分: 安装docker

# 通过yum源安装docker
sudo yum -y install docker
# 启动docker
sudo systemctl start docker
# 开机自启
sudo systemctl enable docker

第二部分: 镜像的操作

查找并下载docker镜像(以centos为例)

# 查找centos镜像
docker search centos
# 下载centos镜像
sudo docker pull docker.io/centos:latest

列出镜像

sudo docker image ls

删除镜像

sudo docker image rm 4655e9997674

第三部分: 容器的操作

创建容器并进入

sudo docker run -t -i --name zhaoolee-centos docker.io/centos:latest /bin/bash

参数说明: -t分配一个伪终端并绑定到容器的标准输入,-i 让容器的标准输入保持打开

查看所有容器

sudo docker ps -a

启动容器

sudo docker start zhaoolee-centos

查看当前运行的容器

sudo docker ps

停止容器

sudo docker stop zhaoolee-centos

进入容器环境

sudo docker attach zhaoolee-centos

向容器内部发送指令

我们可以在不进入容器环境的情况下, 向容器内部发送指令

sudo docker exec zhaoolee-centos touch 123.txt

删除容器

将容器停止后, 可以删除容器

sudo docker rm zhaoolee-centos

(选学)docker高级命令

交换文件 docker cp

通过docker cp命令, 可以实现容器与外部环境的文件交换

我们在docker容器内部新建一个123.txt文件, 将它拷贝到外部环境, 在外部环境新建一个456.txt拷贝到docker容器内部(如下图)

即使容器处于未激活状态, 也是可以进行文件交换的

将修改后的容器发布为镜像

# 将修改后的容器发布为镜像, `-a`表示作者, `-m`表示对本次修改的说明
sudo docker commit -a "zhaoolee" -m "add 123.txt 456.txt" zhaoolee-centos zhaoolee-centos:0.1
# 基于新建的镜像创建容器
sudo docker run -t -i --name my-centos zhaoolee-centos:0.1 /bin/bash

查看镜像的信息

# 查看刚刚新建的镜像信息
sudo docker history zhaoolee-centos:0.1

查看容器内变动日志

sudo docker diff zhaoolee-centos

查看镜像和容器的详细信息

# 查看镜像的详细信息
sudo docker inspect zhaoolee-centos:0.1 
# 查看容器的详细信息
sudo docker inspect zhaoolee-centos

第四部分: 私有仓库的创建

1. 下载私有仓库注册服务器的镜像

sudo docker pull registry:latest

2. 创建一个注册服务器容器

sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry docker.io/registry:latest

参数说明 -d容器在后端运行, -p 5000:5000在容器的5000端口运行并映射到外部系统的5000端口, --name server-registry容器命名为server-registry, -v /tmp/registry /tmp/registry把宿主机的目录/tmp/registry挂载到容器目录/tmp/registry

3. 为本地镜像添加标签,并将其归入本地仓库

为本地镜像添加标签

sudo docker tag zhaoolee-centos:0.1 localhost:5000/zhaoolee-centos:0.1

将被标记的本地镜像, push到仓库

sudo docker push localhost:5000/zhaoolee-centos:0.1

4.测试本地仓库的的可用性

在虚拟机内网,开启另一台ubuntu16.04虚拟机, unbutu16.04尝试从centos7获取刚刚创建的镜像zhaoolee-centos:0.1

sudo docker pull 192.168.214.156:5000/zhaoolee-centos:0.1

# 解决安装过程中的问题:解决: Error response from daemon: Get https://192.168.214.156:5000/v2/: http: server gave HTTP response to HTTPS client
echo '{ "insecure-registries":["192.168.214.156:5000"] }' > /etc/docker/daemon.json

docker作为一种新兴的虚拟化方式,无论是执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效, docker本身支持类似git的操作, 让应用的迭代部署更为简单高效, 对于一些依赖非常复杂的应用, 我们可以直接下载它的docker版本, 开箱即用, 省时省力, 同时为运维人员创造了更多偷懒的机会~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Docker本地镜像发布到阿里云的实现

    Docker本地镜像发布到阿里云的实现

    本文主要介绍了Docker本地镜像发布到阿里云的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker重命名镜像名称和TAG操作

    Docker重命名镜像名称和TAG操作

    这篇文章主要介绍了Docker重命名镜像名称和TAG操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker镜像端口映射的原理及实现

    Docker镜像端口映射的原理及实现

    在使用Docker时,端口映射是一个重要的概念,本篇博客将向您介绍什么是端口映射,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • docker容器调用yum报错的解决办法

    docker容器调用yum报错的解决办法

    在本篇文章里小编给大家分享的是关于docker容器调用yum报错的解决办法,有兴趣的朋友们可以参考下。
    2020-03-03
  • Docker与docker-compose中volume参数的使用方式

    Docker与docker-compose中volume参数的使用方式

    文章介绍了Docker中的数据卷Volume的概念及其在宿主机和容器之间的数据共享和持久化,它详细说明了两种数据挂载方式:通过宿主机绝对路径挂载和通过卷标映射挂载,包括匿名挂载和具名挂载,同时,文章还展示了如何通过docker命令查看数据卷的宿主机目录
    2024-11-11
  • 基于alpine用dockerfile创建的tomcat镜像的实现

    基于alpine用dockerfile创建的tomcat镜像的实现

    这篇文章主要介绍了基于alpine用dockerfile创建的tomcat镜像的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker使用Git实现Jenkins发布、测试项目的详细流程

    Docker使用Git实现Jenkins发布、测试项目的详细流程

    这篇文章主要介绍了Docker使用Git实现Jenkins发布、测试项目的详细流程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Ubuntu 环境下安装 Docker环境详解

    Ubuntu 环境下安装 Docker环境详解

    这篇文章主要介绍了Ubuntu 环境下安装 Docker环境详解的相关资料,需要的朋友可以参考下
    2022-10-10
  • Docker部署java项目的详细步骤(利用Dockerfile方式)

    Docker部署java项目的详细步骤(利用Dockerfile方式)

    docker可以利用简单的编写程序构建出任何你想要的环境,同时可以跟业务代码相结合,快速构建和生成所需要的应用,下面这篇文章主要给大家介绍了关于Docker部署java项目的详细步骤,本文主要利用的是Dockerfile方式,需要的朋友可以参考下
    2022-08-08
  • iptables如何限制宿主机跟Docker IP和端口访问(安全整改)

    iptables如何限制宿主机跟Docker IP和端口访问(安全整改)

    本文详细介绍了如何通过iptables对网络访问进行限制,包括限制特定IP或网段访问特定服务,以及在Docker环境下,如何设置DOCKER-USER链限制IP和端口访问,确保网络安全
    2024-10-10

最新评论