Docker技术实践——高级篇

简介:


1.1      搭建私有仓库

我们需要看下如何搭建容器的私有仓库:

Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。

私有仓库有许多优点:

1.节省网络带宽,不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

2.提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

#docker pull registry

#dockerrun -d -p 5000:5000 --name registry-srv registry

默认仓库存放于容器内的/tmp/registry目录下

镜像需要通过docker tag进行修改,符合仓库需要。

#docker push 192.168.1.104:5000/hello-world

如果出现如下错误:

http: server gave HTTP response to HTTPS client

这是因为docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。

MAC机器中修改:

在Docker的preference中,点击Daemon,Basic页签中,在Insecureregistries中增加一行:

http://192.168.1.104:5000

点击apply and restart重启docker即可。

Ubuntu机器中修改:

 (Ubuntu的地址为/etc/init/docker.conf),在其中增加

--insecure-registry 192.168.1.104:5000

exec "$DOCKERD" $DOCKER_OPTS --raw-logs --insecure-registry 192.168.1.104:5000

然后重启 docker;

#service  docker restart;

如果上述方法不行,那么如下:

在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:

{ "insecure-registries":["192.168.1.104:5000"]}

然后重启 docker;

#service  docker restart;

1.2   传镜

# docker push registry:5000/image_name

1.3   查看

# curl -XGET http://registry:5000/v2/_catalog

# curl -XGEThttp://registry:5000/v2/image_name/tags/list

例如:

#curl -XGEThttp://192.168.1.104:5000/v2/_catalog

输出如下:

{"repositories":["centos","hello-world"]}

# curl -XGEThttp://192.168.1.104:5000/v2/centos/tags/list

输出如下:

{"name":"centos","tags":["7.1"]}

 

1.4      Docker-compose

Docker-compose需要docker-compose.yml文件,依赖yml文件,没有yml文件就没有勇武之地了。

Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。

编辑docker-compose.yml内容如下:

mysql:

  image: csphere/mysql:5.5

  ports:

  - "3306:3306"

wordpress:

  image: csphere/wordpress:10

  ports:

  -"80:80"

启动容器如下:

docker-compose up -d   

关闭容器:

docker-compose stop

 

2.    Q&A

2.1 编译错误

Rpmdb checksum is invalid: dCDPT(pkgchecksums): elfutils-libs.x86_64 0:0.168-8.el7 - u

答:在 Docker 文件中第一个 yum 之前加入如下命令对rpmdb 进行构筑.

RUN     rpm --rebuilddb&& \
目录
打赏
0
0
0
0
78
分享
相关文章
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
168 2
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
81 16
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
Docker技术背景与应用:解决现代开发中的关键问题
Docker作为一种革命性的容器化技术,极大地改变了现代软件开发的方式。通过解决环境一致性、依赖管理、部署复杂性和资源利用率等问题,Docker为开发者提供了高效、灵活的开发和部署环境。尽管面临着一些挑战,但随着技术的发展和完善,Docker将继续在现代软件开发中发挥重要作用。作为全栈工程师,掌握并善用Docker技术,将为我们的开发工作带来更多便利和可能性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Docker核心技术:Docker原理之Namespace
通过以上内容,您可以深入了解Docker中的Namespace机制及其在资源隔离中的应用,从而更好地理解和应用Docker技术。
99 25
|
4月前
|
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
124 5
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
182 3
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
124 4
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
131 14
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等