GVKun编程网logo

软件集装箱化平台Docker——安装(集装箱的软件)

21

在本文中,我们将详细介绍软件集装箱化平台Docker——安装的各个方面,并为您提供关于集装箱的软件的相关解答,同时,我们也将为您带来关于(OK)Fedora23——CORE——docker——(1)—

在本文中,我们将详细介绍软件集装箱化平台Docker——安装的各个方面,并为您提供关于集装箱的软件的相关解答,同时,我们也将为您带来关于(OK) Fedora 23——CORE——docker——(1)——> install-kernel、(OK) Fedora 23——CORE——docker——(3)——> install-docker、docker in windows 从入门到放弃(1)——安装、Docker 不再是单一的 Docker—— 记 Docker 1.11.0 版本变更的有用知识。

本文目录一览:

软件集装箱化平台Docker——安装(集装箱的软件)

软件集装箱化平台Docker——安装(集装箱的软件)

安装

我这边是阿里云的Debian系统,按照官网教程走 https://docs.docker.com/install/linux/docker-ce/debian/

1.卸载旧软件(如果有)

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2.更新软件仓库索引

$ sudo apt-get update

3.安装相关工具

$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common

4.安装GPG密钥

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

5.设置docker仓库

$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable"

6.更新软件仓库索引

$ sudo apt-get update

7.安装Docker CE

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

8.运行hello-world 映像验证是否正确安装了docker-ce

$ sudo docker run hello-world

数据卷位置

/var/lib/docker/volumes

(OK) Fedora 23——CORE——docker——(1)——> install-kernel

(OK) Fedora 23——CORE——docker——(1)——> install-kernel


Information for package kernel
http://koji.fedoraproject.org/koji/packageinfo?packageID=8



dnf install kernel-4.3.3-301.fc23
dnf install kernel-devel-4.3.3-301.fc23
dnf install kernel-headers-4.3.3-301.fc23
dnf install kernel-debug-devel-4.3.3-301.fc23


 kernel                x86_64        4.3.3-301.fc23        fedora        46 k
 kernel-core            x86_64        4.3.3-301.fc23        fedora        20 M
 kernel-modules            x86_64        4.3.3-301.fc23        fedora        18 M

 kernel-modules-extra        x86_64        4.3.3-301.fc23        fedora

 kernel-devel            x86_64        4.3.3-301.fc23        fedora        9.8 M

 kernel-headers            x86_64        4.3.3-301.fc23        fedora        987 k

 kernel-debug-devel        x86_64        4.3.3-301.fc23        fedora        9.9 M

-----------------------------------------------------------------------------

Information for build kernel-4.4.3-300.fc23
http://koji.fedoraproject.org/koji/buildinfo?buildID=739250

wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-debug-devel-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-devel-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-core-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-modules-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-modules-extra-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-4.4.3-300.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.4.3/300.fc23/x86_64/kernel-headers-4.4.3-300.fc23.x86_64.rpm

下面按顺序 执行

rpm -ivh  kernel-debug-devel-4.4.3-300.fc23.x86_64.rpm
rpm -ivh  kernel-devel-4.4.3-300.fc23.x86_64.rpm
rpm -ivh  kernel-core-4.4.3-300.fc23.x86_64.rpm
rpm -ivh  kernel-modules-4.4.3-300.fc23.x86_64.rpm
rpm -ivh  kernel-modules-extra-4.4.3-300.fc23.x86_64.rpm
rpm -ivh  kernel-4.4.3-300.fc23.x86_64.rpm

暂时没有执行
rpm -ivh  kernel-headers-4.4.3-300.fc23.x86_64.rpm

[root @localhost kernel-rpm]# rpm -ivh  kernel-headers-4.4.3-300.fc23.x86_64.rpm
错误:依赖检测失败:
    kernel-headers < 4.4.8-300.fc23 被 (已安裝) kernel-headers-4.4.8-300.fc23.x86_64 取代

-----------------------------------------------------------------------------
Information for build kernel-4.3.3-301.fc23
http://koji.fedoraproject.org/koji/buildinfo?buildID=711494

wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-debug-devel-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-devel-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-core-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-modules-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-modules-extra-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-4.3.3-301.fc23.x86_64.rpm
wget  https://kojipkgs.fedoraproject.org//packages/kernel/4.3.3/301.fc23/x86_64/kernel-headers-4.3.3-301.fc23.x86_64.rpm

下面按顺序 执行

rpm -ivh  kernel-debug-devel-4.3.3-301.fc23.x86_64.rpm
rpm -ivh  kernel-devel-4.3.3-301.fc23.x86_64.rpm
rpm -ivh  kernel-core-4.3.3-301.fc23.x86_64.rpm
rpm -ivh  kernel-modules-4.3.3-301.fc23.x86_64.rpm
rpm -ivh  kernel-modules-extra-4.3.3-301.fc23.x86_64.rpm
rpm -ivh  kernel-4.3.3-301.fc23.x86_64.rpm

暂时没有执行
rpm -ivh  kernel-headers-4.3.3-301.fc23.x86_64.rpm

[root @localhost kernel-rpm]# rpm -ivh  kernel-headers-4.3.3-301.fc23.x86_64.rpm
错误:依赖检测失败:
    kernel-headers < 4.4.8-300.fc23 被 (已安裝) kernel-headers-4.4.8-300.fc23.x86_64 取代

-----------------------------------------------------------------------------
rpm --oldpackage -ivh  kernel-debug-devel-4.3.3-301.fc23.x86_64.rpm
rpm --oldpackage -ivh  kernel-devel-4.3.3-301.fc23.x86_64.rpm
rpm --oldpackage -ivh  kernel-core-4.3.3-301.fc23.x86_64.rpm
rpm --oldpackage -ivh  kernel-modules-4.3.3-301.fc23.x86_64.rpm
rpm --oldpackage -ivh  kernel-modules-extra-4.3.3-301.fc23.x86_64.rpm
rpm --oldpackage -ivh  kernel-4.3.3-301.fc23.x86_64.rpm



下面由于版本问题,暂时不执行

rpm --oldpackage -ivh  kernel-headers-4.3.3-301.fc23.x86_64.rpm


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dnf - Fedora23——删除多余不用的内核
http://blog.csdn.net/ztguang/article/details/51302063
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root @localhost ~]# uname -r
uname -r

4.3.5-300.fc23.x86_64

[root @localhost ~]# rpm -qa | grep kernel |grep 4.4.8
rpm -qa | grep kernel |grep 4.4.8

kernel-core-4.4.8-300.fc23.x86_64
kernel-headers-4.4.8-300.fc23.x86_64
kernel-modules-4.4.8-300.fc23.x86_64
kernel-modules-extra-4.4.8-300.fc23.x86_64
kernel-devel-4.4.8-300.fc23.x86_64
kernel-4.4.8-300.fc23.x86_64


[root @localhost ~]#
dnf remove kernel-core-4.4.8-300.fc23.x86_64
dnf remove kernel-devel-4.4.8-300.fc23.x86_64

dnf remove kernel-modules-4.4.8-300.fc23.x86_64
dnf remove kernel-modules-extra-4.4.8-300.fc23.x86_64
dnf remove kernel-4.4.8-300.fc23.x86_64

下面这条命令暂时不执行,因为要删除的包太多
dnf remove kernel-headers-4.4.8-300.fc23.x86_64

[root@localhost ~]# dnf remove kernel-headers-4.4.8-300.fc23.x86_64
===================================================================
移除  226 软件包

安装大小:754 M
确定吗?[y/N]: n
操作中止。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

删除内核:4.3.5

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[root@localhost ~]#  rpm -qa | grep kernel |grep 4.3.5

kernel-modules-4.3.5-300.fc23.x86_64
kernel-4.3.5-300.fc23.x86_64
kernel-devel-4.3.5-300.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
kernel-modules-extra-4.3.5-300.fc23.x86_64
kernel-debug-devel-4.3.5-300.fc23.x86_64

[root@localhost ~]#

dnf remove kernel-modules-4.3.5-300.fc23.x86_64
dnf remove kernel-4.3.5-300.fc23.x86_64
dnf remove kernel-devel-4.3.5-300.fc23.x86_64
dnf remove kernel-core-4.3.5-300.fc23.x86_64
dnf remove kernel-modules-extra-4.3.5-300.fc23.x86_64
dnf remove kernel-debug-devel-4.3.5-300.fc23.x86_64
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(OK) Fedora 23——CORE——docker——(3)——> install-docker

(OK) Fedora 23——CORE——docker——(3)——> install-docker

+++++++++++++++++++++++++ install docker etc.

# Fedora 23

dnf install openvswitch docker-io xterm wireshark-gnome ImageMagick tcl tcllib tk kernel-modules-extra util-linux

----------------------------------------------------
install docker 1.9.1
----------------------------------------------------

//docker 1.9.1
//dnf update --exclude=kernel*
//dnf update

dnf remove docker
dnf install docker-io

rm /var/lib/docker/ -rf
ls /var/lib/docker/

systemctl start docker
systemctl stop docker
systemctl status docker
systemctl enable docker

docker search busybox
docker pull busybox
docker images
docker tag 307ac631f1b5 docker.io/busybox:core
docker rmi docker.io/busybox:core

docker run --rm -it busybox /bin/sh

dnf remove docker-io
rm /var/lib/docker/ -rf

----------------------------------------------------

So far, OK

----------------------------------------------------
https://docs.docker.com/engine/installation/linux/fedora/

install docker 1.11.1
----------------------------------------------------
tee /etc/yum.repos.d/docker.repo <<-''EOF''
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/fedora/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

----------------------------------------------------
//docker 1.11.1
//dnf update

dnf update --exclude=kernel*
init 6

dnf update
dnf install docker-engine

dnf remove docker-engine


----------------------------------------------------

dnf install docker-engine-1.10.3 docker-engine-selinux-1.10.3

---------------------------------------------------- the two following lines, not use

    # echo ''DOCKER_STORAGE_OPTIONS="-s overlay"'' >> /etc/sysconfig/docker-storage
    # systemctl restart docker

----------------------------------------------------
ls /etc/systemd/system
ls /usr/lib/systemd/system
ls /usr/lib/systemd/system/docker.service

rm /var/lib/docker/overlay/ -rf
rm /var/lib/docker/ -rf
----------------------------------------------------

[root @localhost 桌面]# gedit /usr/lib/systemd/system/docker.service

# ExecStart=/usr/bin/docker daemon -H fd://
ExecStart=/usr/bin/docker daemon -s overlay


systemctl start docker.service
systemctl restart docker.service
systemctl stop docker.service
systemctl status docker.service

systemctl daemon-reload

----------------------------------------------------

Work around for me right now is to downgrade to 1.6.2.

# yum downgrade docker-1.6.2-14.el7.centos
# systemctl restart docker

----------------------------------------------------
docker info
docker version

----------------------------------------------------

[root @localhost 桌面]#
docker search busybox
docker pull busybox
docker images
docker tag 47bcc53f74dc busybox:core
docker rmi busybox:core

docker run --rm -it busybox /bin/sh


[root @localhost 桌面]# docker logs $(docker ps -q) | tail -20

[root @n2 n2.conf]#
docker daemon -s overlay &
docker run --rm -it busybox /bin/sh

rm /var/lib/docker/ -rf

----------------------------------------------------

So far, OK

----------------------------------------------------


docker run hello-world

systemctl status systemd-udevd.service -l

//List Containers
docker ps
docker ps -a
docker ps -l
//Attach to a Specific Container
docker attach 9c09acd48a25
//View Logs for a Docker Container 2c9d5e12800e
docker logs 2c9d5e12800e

docker images
docker tag 778a53015523 centos:core

docker search centos
docker pull centos

docker images
docker rmi 778a53015523
docker tag 40467a0b3d66 centos:core
docker tag 44776f55294a ubuntu:core

docker run hello-world

docker run centos echo "hello world!"
docker run ubuntu echo "hello world!"
docker run ubuntu:core echo "hello world!"

docker run -it busybox /bin/sh
docker run --rm -it busybox /bin/sh

docker tag 307ac631f1b5 docker.io/busybox:core
docker run --rm -it busybox:core /bin/sh

docker run -v /tmp/dockerdev:/dev -it --rm centos:core bash

docker run -d --net host --name coreDock busybox /bin/sh

docker ps -a
brctl show
ldd $(which docker)

ps aux |grep docker

----------------------------------------------------
----------
如果出现如下问题:
# systemctl start docker
Job for docker.service failed. See ''systemctl status docker.service'' and ''journalctl -xn'' for details.
解决方法:
# rm /var/lib/docker -rf
# systemctl daemon-reload
# systemctl start docker

--------------------------------------------------------------------------------------------------------------
http://stackoverflow.com/questions/20994863/how-to-use-docker-or-linux-containers-for-network-emulation
--------------------------------------------------------------------------------------------------------------
    CORE Network Emulator does have a Docker Service that I contributed and wrote an article about. The initial version that is in 4.8 is mostly broken but I have fixed and improved it. A pull request is on GitHub.  
 
    The service allows you to tag Docker Images with ''core'' and then they appear as an option in the services settings. You must select the Docker image which starts the docker service in the container. You then select the container or containers that you want to run in that node. It scales quite well and I have had over 2000 nodes on my 16Gb machine.  
 
    You mentioned OVS as well. This is not yet built in to CORE but can be used manually. I just answered a question on the CORE mailing list on this. It gives a brief overview of switching out a standard CORE switch(bridge) with OVS. Text reproduced below if it is useful:  
--------------------------------------------------------------------------------------------------------------




docker in windows 从入门到放弃(1)——安装

docker in windows 从入门到放弃(1)——安装

docker大名听说了很久,一直没有去研究过,但现在面试动不动要求docker,还是研究下吧。由于我的电脑是win10系统(穷,买不起mac),安装过程各种坑爹问题不断,一度都想放弃,所以说垃圾windows真的不适合开发,最终写下这篇劝人放弃windows安装docker的教程。

安装方法

官网推荐的docker for windows

我最开始也是直奔官网安装这个,结果看到系统要求:


家庭版的我表示承受不起,不信邪的我网上搜素了安装教程,发现可以通过修改注册表更改版本,避过安装的检查,https://www.cnblogs.com/samwu/p/10360943.html
安装成功,兴奋的打开docker for windows,擦又要检查,再次修改注册表结果没用了。。。。
再次谷歌百度,发现似乎是最新版还没有解决方案,只能放弃,卸载。

DockerToolBox

终于经过各种谷歌百度找到一种在家庭版下可以安装的方法:
https://docs.docker.com/toolbox/toolbox_install_windows/


翻译过来就是docker toolBox是给穷鬼(比如我,用不起mac也用不起高版本的win)用的,官网推荐你升级系统(没钱)。
下载安装,坑又来了:

  1. 由于我安装过docker for windows 开启了hyper-V,现在启动不了virtual Box虚拟机,好吧老一套谷歌百度,https://blog.csdn.net/zitian246/article/details/86667293
  2. 由于安装过git,我取消了git的安装,启动Docker Quickstart Terminal失败,缺少快捷方式:


    右键属性,修改目标中git的路径


  3. 启动Docker Quickstart Terminal一直在下载boot2docker.iso失败,由于它是从github上下载的比较慢,有2种解决方案:1. 复制下载的github地址,自己下载,然后复制到C:\Users\[你自己的电脑账号]\.docker\machine\cache;2. 直接复制你docker toolBox下的文件到上面的地址,然后断网启动

简单使用

安装完成之后在桌面上有三个软件:

  1. Oracle VM VirtualBox:虚拟机,打开后里面应该有一个default虚拟机,这个就是boot2docker.iso生成的docker使用的linux默认虚拟机。
  2. Kitematic (Alpha):docker的界面化工具,服务器一般都linux系统,建议还是学学命令行使用。
  3. Docker Quickstart Terminal:docker的命令行工具。

下面以命令行部署hello-world为例,简单使用docker。

  1. docker pull hello-world,从远程仓库docker hub拉取hello-world镜像。
  2. docker images,展示本地的所有镜像。
  3. docker run hello-world,创建hello-world镜像的容器并运行。
  4. docker ps -a, 展示所有容器,去掉-a展示正在运行的容器。

注意:每次执行docker run hello-world都会创建一个容器,如果想运行上次创建的容器,可以执行docker start containId,containId为docker ps -a查出的id。

总结

docker在windows系统上的安装相当麻烦,能买mac还是买mac吧,毕竟windows系统分为个人版和server版,大多数人的电脑相信都是个人版,不是用来充当服务器的,但是server版的估计还是只能装阉割版的redis、Nginx,各种泪啊。

Docker 不再是单一的 Docker—— 记 Docker 1.11.0 版本变更

Docker 不再是单一的 Docker—— 记 Docker 1.11.0 版本变更

春节过后,时隔两个月,Docker 的又一个大版本 1.11.0 发布,除了功能的不断完善之外,该版本最大的看点无疑在于 Docker Daemon 的架构由原来一个模块,现在拆分为 4 个独立的模块:

  • docker

  • containerd

  • docker-containerd-shim

  • docker-runc

  • 关于这部分的实现与价值,DaoCloud 的 Docker 工程师将会在后续深层次披露。

    作为在生产环境中深度使用 Docker 的科技公司,DaoCloud 同时也踊跃参与 Docker 软件的开源社区,为 Docker 贡献代码。本次 docker 1.11.0 版本的变更日志中,有关 info 信息的显示、配置文件加载的验证、请求返回码的更正等多个 pr,均由 DaoCloud 的工程师孙宏亮完成实现并合并。

    以下是 Docker 1.11.0 版本的完整变更日志。

    重要提示

    使用 Docker 1.11 时,和往常有很大不同的是,现在 Linux 平台上 Docker 的安装包括 4 个不同的二进制文件,它们分别是 docker、docker-containerd、docker-containerd-shim 以及 docker-runc。如果在你的环境中,有一些脚本是强依赖于单独一个的 docker 二进制文件,使用前需要确认更新这些脚本。与 Docker Daemon 的交互依然和以前保持不变,而其他部分的二进制文件的使用则可以认为对用户透明。另外,在 Windows 平台上,二进制文件依然以单独的 docker.exe 形式存在。

    镜像构建模块 (Builder)

  • 修复了当处理 WORKDIR 命令时,Docker 不能使用 uid/gid 的 Bug

  • 修复了通过用户命名空间(userns)不能使用正确的 uid/gid 的 Bug

  • Docker 客户端(Client)

  • 安全参数的划分符,由之前的 : 改为 =

  • 在 pullpushbuildlogin 和  search 操作中,可以加入用户代理,以传输至 Docker Registry

  • 允许通过 API 分别设定容器的域名名称(DOMAIN_NAME)和主机名

  • docker info 命令的执行过程中,如果内核与操作系统信息没有找到,提示警告信息(该核心代码 pr 由 DaoCloud 软件工程师提起并被合进主线)

  • 修复了 docker stats --no-stream 命令输出有可能都是 0 的 Bug

  • 修复了有些新启动的容器不会出现在 docker stats 命令中的 Bug

  • 在 Linux-cgo 终端中不再支持后处理(Post Processing)

  • 如果 --hostname 参数不符合 RFC1123 的话,该参数会被拒绝传入

  • Docker 开始支持通过 SOCKS 代理来转发客户端请求

  • Docker 目前支持外部的认证存储

  • docker ps 命令现在支持显示被挂载到容器内部的存储卷列表

  • docker info 现在支持显示 Docker Daemon 的根目录地址

  • Docker 现在不允许用户登录时输入一个空的用户名,因为空格会被移除

  • Docker 的运行事件属性会通过 key 来排序

  • docker ps 命令不再显示已经停止的容器的暴露端口

  • Docker 现在会自动还原现场,如果一个 docker save 和 docker export 操作失败的话

  • docker load 命令现在支持显示一个进度条

  • Distribution

  • 修复了当下载没有 layer 的镜像时发生的恐慌错误

  • 修复了使用一个错误配置的 token 服务来向 Docker Registry 推送镜像时的恐慌

  • 当进行一个受信的镜像推送时,目前需要完成一次全面的授权工作

  • Registry 的 OAuth 已经可以支持

  • 目前 docker login 使用 docker/distribution 中的实现来处理 token 信息

  • docker login 不再提示输入邮箱地址

  • Docker 如果没有 basic auth 的信息时,会自动转向 docker regsitry v1

  • 在网络错误或者超时的情况下,Docker 会重新恢复对一个镜像 layer 的下载

  • 修复了推送 cross-repository 时生成的 manifest 的媒介类型

  • 当 Docker Content Trust 开启时,当下载一个镜像时,修复了 Docker 需要请求额外的 push 认证信息

  • 日志模块(logging)

  • 修复了 jorunald 日志驱动的数据临界区冲突

  • 当发送日志时,Docker 的 syslog 驱动现在使用 RFC-5424 的格式

  • Docker 的 GELF 日志驱动现在允许通过 gelf-compression-type 和 gelf-compression-level 参数来制定压缩算法以及压缩级别

  • Docker Daemon 开始使用 --law-logs 参数来保证输入没有着色的日志

  • 在微软平台上的 Docker,目前包括了 ETW (Event Tracing in Windows) 的日志驱动,命名为 etwlogs

  • Journald 日志驱动开始有能力处理标签

  • Fluent 日志驱动开始支持以下参数:fluentd-addressfluentd-buffer-limitfluentd-retry-waitfluentd-max-retries和 fluentd-async-connect

  • Docker 开始支持向 Google Cloud 发送日志,主要通过日志驱动 gcplogs

  • 格式更新(Misc)

  • 当通过 docker save 命令保存链接关系的镜像时,最终 docker load 命令会以父子的关系,重新保存这些镜像

  • 目前 Docker Cli 的编译工作已经支持 OpenBSD

  • 标签目前已经可以被添加在网络、存储卷和镜像的创建过程中

  • dockremap 目前会被作为默认用户创建

  • 修复一部分的响应请求内存泄漏

  • 当作为 systemd 的一项服务时,Docker 会管理它的进程 cgroup

  • docker info 会汇报 cgroup 内核内存的大小,或者在不支持该参数时发送一个告警

  • docker info 目前可以支持 cgroup 驱动的显示

  • Docker 命令的自动补全,已经在 PowerShell 中得到支持

  • 在 Docker 的世界中,不再存在 dockerinit

  • 支持在 arm64 的设备上构建 Docker

  • 在一个原生的 Windows 安装过程中,实现构建 docker.exe 的试验版支持

  • 网络

  • 修复了一个节点被从一个集群中强制删除时可能出现的恐慌错误

  • 修复了在 Swarm 集群中启动一个容器时,会报 “error creating vxlan interface” 的错误

  • 不管是否用拥有一个运行的容器,docker network inspect会显示所有的 endpoint

  • 对 MacVlan 和 IPVlan 的支持,已经被加入至 Docker 的试验版本

  • docker network ls 的输出现在会以网络名进行排序

  • 修复了 Docker 会允许保留的 default 名来创建网络的 Bug

  • docker network inspect 目前会显示一个网络是否是内部的

  • 当创建一个网络时,通过清晰的参数来实现控制 IPv6(docker network create --ipv6),这会在 docker network inspect中以一个新的域 EnableIPv6 来实现

  • 在内嵌的 DNS 服务中支持 AAAA 记录,也就是 IPv6 的服务发现

  • 修复了 Bug,从而不向外部主机转发 docker 域内 IPv6 查询请求

  • 为轮询的 DNS 策略,从嵌入的 DNS 服务器中支持多种 A/AAAA 纪录

  • 在非正常的 docker 重启之后,修复了 endpoint 的数量不一致

  • 将暴露端口和端口映射关系的所属权,从 Endpoint 移至 Sandbox

  • 当主机的配置有 ipv6.disable=1 时,修复了不能 docker reload 的 Bug

  • 在 IPAM 网络地址管理驱动中添加了 nil 的内置实现

  • 修复了 iptables.Exists () 逻辑中的 Bug

  • 修复使用 overlay 网络时,veth 网络接口的内存泄漏问题

  • 修复了在关闭过程中一个网络删除后,阻止 docker reload 操作的 Bug

  • 确保 iptables 链在 firewalld 重新加载过程中被重新创建

  • 在配置重新加载的过程中允许传入全部的数据存储仓库地址

  • 对于匿名的容器,使用为 IP 与名称的映射使用别名,比如 DNS PTR record

  • 修复从 /etc/hosts 文件删除一项时可能产生的程序恐慌

  • 从容器的网络命名空间中找到被转发的 DNS 查询

  • 在 docker daemon 重新加载配置时,为网桥网络获取网络的内部网络模式配置

  • 在 docker daemon 重新加载配置时,获取原先的 IPAM 网络地址管理驱动

  • 插件

  • 修复了每次罗列插件时都会出现的文件描述符泄漏

  • 修复了面对大量数据时,authz 插件有可能会使 payload body 崩溃的 Bug

  • Docker Daemon 运行时

  • 修复了通过无效的参数启动一个容器之后还原现场可能存在的程序恐慌

  • 修复了事件计时器提前停止可能出现临界区冲突

  • 修复了 layer 存储中存在的数据临界区问题,该问题有可能导致 map 对象的失效以及 docker daemon 进程的崩溃

  • 在 mount 时,对于宿主机文件的自动创建功能由重新恢复,此前在 Docker 1.9 版本时,该功能已经被弃用

  • 当用户命名空间启动时,现在可以让容器间共享 NET 和 IPC 命名空间

  • docker inspect <image-id> 命令目前已经可以支持显示 rootfs 的 layer

  • Windows 上的 Docker 现在已经支持了一个 top 命令的最简单实现

  • 当一个容器不能通过 Docker 的命令启动时,Docker 报告这个错误

  • 如果 udev sync 不可用时,Docker 将拒绝运行 device mapper

  • 当配置被重新加载时,修复了不验证配置有效性的 Bug(该核心代码 pr 由 DaoCloud 软件工程师提起并被合进主线)

  • 修复了出现夯机的现象,当初始启动失败后的 attach 操作

  • 修复了 Docker 配置文件中的 Registry 服务参数没有被正常考虑的问题

  • 修复了 exec 和 resize 操作有可能造成的临界区数据访问冲突问题

  • 修复了在 docker 事件中,没有正确考虑的纳秒计算问题

  • 修复了当传入一个 64 位 ID 时,Docker 命令的处理问题

  • 当删除网络成功的时候,Docker 会返回一个 204 status code(该核心代码 pr 由 DaoCloud 软件工程师提起并被合进主线)

  • 修复了杀死进程时该进程已经自己退出时,Docker Daemon 有可能无限期等待的 Bug

  • devicemapper 驱动开始支持参数 dm.min_free_space,如果映射的设备剩余空间到达了设定值,那么新设备的创建也会被禁止

  • Docker 现在支持通过参数 --security-opt=no-new-privileges 禁止容器内的进程获取新的 privilege 的权限

  • 带有参数 --device 启动一个容器时,现在将会重新解析符号链接

  • Docker 现在开始通过 containerd 和 runc 来创建新的容器

  • 修复了 Docker 配置重新加载只检索配置文件中选项的问题

  • 当网络参数 --net=host 时,Docker 现在允许为容器再设定一个 hostname

  • 当 --privileged 和新的 --userns=host 参数被指定时,Docker 目前允许运行 privileged 容器时使用参数 --userns-remap

  • 当容器崩溃后重启时,修复了该情况下 Docker 不会清洗现场的 Bug

  • 当重新加载配置文件,读到一个没有定义的配置项时,Docker 将会报告这个错误

  • 修复了 Docker Daemon 重启时,容器加载过程中依赖与插件的错误

  • docker update 操作支持更新一个容器的重启策略

  • docker inspect 现在返回一个新的 State 状态,包含了可读的容器状态

  • Docker 开始支持限制容器的运行进程个数,一旦容器的 PID Cgroups 被启动的话,可以通过参数 pids-limit 来实现,当然这需要 Linux 内核版本的支持

  • docker load 命令新添加了一个 --quiet 参数,来使得缓解运行输出

  • 修复了 IPv6 点对点通信时的邻点发现问题

  • 修复了如果容器通过无效参数启动时,清理过程中有可能出现的运行恐慌

  • 修复了当运行终端被关闭之后,容器不能被停止的 Bug

  • 安全

  • 拥有类型 pcp_pmcd_t 的对象,目前已经授予了访问 /var/lib/docker 的管理权限

  • restart_syscallcopy_file_range 和 mlock2 已经作为容器允许的系统调用,被加入至默认的 seccomp 文档中

  • sendrecv和 x32 已经加入至容器允许的系统调用,从而使得容器可以安装 32 位的软件包

  • Docker Content Trust 目前可以向服务端发送请求,以实现签名快照

  • 将对于 YubiKeys 的支持移出了试验部分(experimental)

  • 存储卷

  • 命令 docker volume ls 的输出目前已经按照存储卷的名称来排序

  • 本地的存储卷驱动(local driver)目前可以接受与 mount 命令类似的参数

  • 修复了一个 Bug,使得只有一个字母的文件夹可以被用来作为存储卷的源地址

  • 在 docker run -v 命令中,新添加一个新的 flag,名为 nocopy。这个标识符告知 Docker Daemon 不要拷贝容器中的内容到存储卷之中(原先这是一个默认的行为)

  • 老司机介绍|孙宏亮,DaoCloud 技术合伙人,主要负责 DaoCloud 企业级容器云平台的研发。对系统 Docker 化与微服务架构有丰富的经验,目前已出版《Docker 源码分析》一书,也是国内第一批研究及实践 Docker 的工程师,同时也是国内社区极具影响力的 Docker 布道者。

    我们今天的关于软件集装箱化平台Docker——安装集装箱的软件的分享就到这里,谢谢您的阅读,如果想了解更多关于(OK) Fedora 23——CORE——docker——(1)——> install-kernel、(OK) Fedora 23——CORE——docker——(3)——> install-docker、docker in windows 从入门到放弃(1)——安装、Docker 不再是单一的 Docker—— 记 Docker 1.11.0 版本变更的相关信息,可以在本站进行搜索。

    本文标签: