Tag: apt

将docker仓库密钥添加到apt-key的目的是什么?

我想在我的Ubuntu 14.04安装docker,我跟着下面的链接。 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-getting-started 在这个链接中,提到我们需要添加文件库密钥。 我不明白这是什么用途,为什么要添加?

版本控制,apt(和Docker)

我有一个Dockerfile: from ubuntu build_my_package main-branch apt-get update && apt-get install -y my_package some_third_party_packages my_package源代码的版本控制由GITpipe理,就像Dockerfile本身一样。 我将当前版本标记为JAGUAR_RC1(发布候选版本1),从Dockerfile构build映像并发送image.JAGUAR_RC1进行testing。 我得到一个错误报告,在GIT中修复,创build一个新的图像image.JAGUAR_RC2,并发送这个新的形象进行testing。 馊主意! QC报告了几个新的错误,这些错误是由我从未打算更新的第三方软件包的新版本导致的。 那么正确的方法是什么?

处理Docker镜像中的软件更新

比方说,我创build了一个名为foo的docker镜像,其中包含apt软件包foo 。 foo是图像中的一个长时间运行的服务,所以图像不会经常重新启动。 什么是最好的方式去更新容器内的包? 我可以使用他们正在运行的foo版本来标记我的图像,并在容器中安装特定版本的软件包(即apt-get install foo=0.1.0并标记我的容器foo:0.1.0 ),但这意味着跟踪软件包的版本,并在每次软件包更新时创build一个新的映像/标签。 如果有办法实现自动化,我会非常高兴,但我还没有看到这样的事情。 另一种方法是在容器启动时安装(和更新)软件包,但是这意味着容器启动时的延迟会有所不同,具体取决于它是否是来自映像的新容器,或者是否启动了现有容器。 我目前正在使用这种方法,但延迟可能是相当恼人的大包。 什么(客观)最好的方式来处理这个? 不得不等待一个容器启动并更新自身并不是很理想。

如何debuggingdocker化的自拆分程序?

我正在为Debian-like发行版的软件包维护者编写Docker镜像 。 这些图像是从各个Debian发行版的官方图像中派生出来的,通过添加维护所需的软件包,并以几个有用的装入卷开始,以便从用户的环境中获取各种configuration项目,而不是保存在容器中。 当我从这个镜像启动一个shell并执行一个apt-src build来准备一个包时,操作正常开始,但是容器和tty之间的连接莫名其妙地下降了。 使用docker ps -a检查容器的状态显示它Exited (0) 。 这很奇怪,因为这意味着某些东西会导致shell在其子命令运行时退出。 哪些步骤可以帮助我debugging这种奇怪的行为,弄清楚这里发生了什么,并最终修复它? 容器运行命令 这是我如何启动容器: docker run\ –interactive=true\ –tty=true\ –rm=false\ –volume "${maintainer_pkgdir}:${maintainer_docker_pkgdir}"\ –volume "${maintainer_srcdir}:${maintainer_docker_srcdir}"\ –volume "${maintainer_confdir}:${maintainer_docker_confdir}"\ "${maintainer_repository}/${maintainer_image}" 会话logging 会话包含两个命令apt-src install bmake和apt-src build bmake : % apt-src install bmake Reading package lists… Done Building dependency tree Reading state information… Done Need to get 544 kB of source […]

Bash脚本来设置Docker失败,但个别命令的工作

我创build了一个bash脚本来为Docker准备一个Ubuntu机器并安装Docker。 但是,在运行脚本时,其中一个sudo apt-get update命令会使脚本在Reading package lists…挂起很长一段时间(可能会永远)。 它是在命令“apt-cache policy docker-engine”之后的那个。 通过这个唯一的方法是按回车 ,这将使得sudo apt-get update继续。 我主要关心的是,当我手动运行这些命令时,它们工作正常,我没有遇到这个问题。 我只在遇到这个问题时才在.sh脚本中运行。 以下是脚本: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee -a /etc/apt/sources.list.d/docker.list sudo apt-get update sudo apt-get purge lxc-docker apt-cache policy docker-engine sudo apt-get update echo […]

无法在新鲜的debian 8 jessie上安装docker

我试图在新的debian 8(jessie)上安装docker-engine。 我按照这里列出的说明。 不幸的是,docker引擎无法安装使用apt,浪费了这么多小时后,试图解决这个问题,我绝对不知道下一步该怎么做。 我也试过安装版本1.9.0-0〜jessie,但是这样会产生同样的错误。 uname -a: Linux seven 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux 这是我尝试安装时发生的情况: berten@seven:~$ sudo apt-get install docker-engine Reading package lists… Done Building dependency tree Reading state information… Done The following extra packages will be installed: aufs-tools cgroupfs-mount git git-man libapparmor1 liberror-perl libnih-dbus1 libnih1 makedev mountall patch plymouth Suggested packages: […]

用`gpg –recv-key`下载密钥,同时检查脚本中的指纹

如何通过gpg –recv-key导入gpg –recv-key并自动检查它的指纹? 理想情况下,我会直接使用gpg –recv-key $fingerprint ,但是gpg最近才添加了一个检查 ,即接收到的密钥实际上有正确的指纹,而不是盲目地信任密钥服务器,并且修复没有着落我关心的所有发行版(例如,Docker Ubuntu Image仍然有一个旧的gpg版本)。 我想和apt-key一起使用它来将一个PPA添加到一个docker容器中。

如何处理临时apt-key adv失败?

我有一个dockerfile,可以随时添加OpenPGP密钥。 问题是keyserver hkp://pgp.mit.edu:80不时响应。 有什么我可以做的,以避免这种浪费失败的时间?