高级容器引擎 Docker v1.12.0 发布
jopen 8年前
<p style="text-align: center;"><img alt="" src="https://simg.open-open.com/show/d2f43c169b53d4d2dcd40dd8a8099b7c.png" /></p> <p>Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker的思想来自于集装箱,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。<img src="file:///C:/Users/wqm/AppData/Local/Temp/enhtmlclip/Image.png" /></p> <p><img alt="" src="https://simg.open-open.com/show/285e2be57d8d3e7430ec0f7cc3ea17fb.png" /><img alt="" src="https://simg.open-open.com/show/b4353f28e11b981e30ba14ec6613148d.png" /></p> <h2>更新日志</h2> <h3>Builder</h3> <ul> <li>New <code>HEALTHCHECK</code> Dockerfile instruction to support user-defined healthchecks <a href="/misc/goto?guid=4958991430910607232">#23218</a></li> <li>New <code>SHELL</code> Dockerfile instruction to specify the default shell when using the shell form for commands in a Dockerfile <a href="/misc/goto?guid=4958991431027124340">#22489</a></li> <li>Add <code>#escape=</code> Dockerfile directive to support platform-specific parsing of file paths in Dockerfile<a href="/misc/goto?guid=4958991431141919871">#22268</a></li> <li>Add support for comments in <code>.dockerignore</code> <a href="/misc/goto?guid=4958991431245858498">#23111</a></li> <li>Support for UTF-8 in Dockerfiles <a href="/misc/goto?guid=4958991431354024428">#23372</a></li> <li>Skip UTF-8 BOM bytes from <code>Dockerfile</code> and <code>.dockerignore</code> if exist <a href="/misc/goto?guid=4958991431463272939">#23234</a></li> <li>Windows: support for <code>ARG</code> to match Linux <a href="/misc/goto?guid=4958991525529107559">#22508</a></li> <li>Fix error message when building using a daemon with the bridge network disabled <a href="/misc/goto?guid=4958991525637203787">#22932</a></li> </ul> <h3>Contrib</h3> <ul> <li>Enable seccomp for Centos 7 and Oracle Linux 7 <a href="/misc/goto?guid=4958991525728739578">#22344</a></li> <li>Remove MountFlags in systemd unit to allow shared mount propagation <a href="/misc/goto?guid=4958991431566411897">#22806</a></li> </ul> <h3>Distribution</h3> <ul> <li>Add <code>--max-concurrent-downloads</code> and <code>--max-concurrent-uploads</code> daemon flags useful for situations where network connections don't support multiple downloads/uploads <a href="/misc/goto?guid=4958991431686867070">#22445</a></li> <li>Registry operations now honor the <code>ALL_PROXY</code> environment variable <a href="/misc/goto?guid=4958991431796855068">#22316</a></li> <li>Provide more information to the user on <code>docker load</code> <a href="/misc/goto?guid=4958991431903699665">#23377</a></li> <li>Always save registry digest metadata about images pushed and pulled <a href="/misc/goto?guid=4958992660104724972">#23996</a></li> </ul> <h3>Logging</h3> <ul> <li>Syslog logging driver now supports DGRAM sockets <a href="/misc/goto?guid=4958991432007796526">#21613</a></li> <li>Add <code>--details</code> option to <code>docker logs</code> to also display log tags <a href="/misc/goto?guid=4958991432122142164">#21889</a></li> <li>Enable syslog logger to have access to env and labels <a href="/misc/goto?guid=4958991526036341724">#21724</a></li> <li>An additional syslog-format option <code>rfc5424micro</code> to allow microsecond resolution in syslog timestamp <a href="/misc/goto?guid=4958991526137109027">#21844</a></li> <li>Inherit the daemon log options when creating containers <a href="/misc/goto?guid=4958991432225889303">#21153</a></li> <li>Remove <code>docker/</code> prefix from log messages tag and replace it with <code>{{.DaemonName}}</code> so that users have the option of changing the prefix <a href="/misc/goto?guid=4958991432340653230">#22384</a></li> </ul> <h3>Networking</h3> <ul> <li>Built-in Virtual-IP based internal and ingress load-balancing using IPVS <a href="/misc/goto?guid=4958991436695814871">#23361</a></li> <li>Routing Mesh using ingress overlay network <a href="/misc/goto?guid=4958991436695814871">#23361</a></li> <li>Secured multi-host overlay networking using encrypted control-plane and Data-plane <a href="/misc/goto?guid=4958991436695814871">#23361</a></li> <li>MacVlan driver is out of experimental <a href="/misc/goto?guid=4958991526335882517">#23524</a></li> <li>Add <code>driver</code> filter to <code>network ls</code> <a href="/misc/goto?guid=4958991432468035673">#22319</a></li> <li>Adding <code>network</code> filter to <code>docker ps --filter</code> <a href="/misc/goto?guid=4958991432599647008">#23300</a></li> <li>Add <code>--link-local-ip</code> flag to <code>create</code>, <code>run</code> and <code>network connect</code> to specify a container's link-local address <a href="/misc/goto?guid=4958991432988210474">#23415</a></li> <li>Add network label filter support <a href="/misc/goto?guid=4958991526517185468">#21495</a></li> <li>Removed dependency on external KV-Store for Overlay networking in Swarm-Mode <a href="/misc/goto?guid=4958991436695814871">#23361</a></li> <li>Add container's short-id as default network alias <a href="/misc/goto?guid=4958991526623050198">#21901</a></li> <li><code>run</code> options <code>--dns</code> and <code>--net=host</code> are no longer mutually exclusive <a href="/misc/goto?guid=4958991526720392533">#22408</a></li> <li>Fix DNS issue when renaming containers with generated names <a href="/misc/goto?guid=4958991432727086892">#22716</a></li> <li>Allow both <code>network inspect -f {{.Id}}</code> and <code>network inspect -f {{.ID}}</code> to address inconsistency with inspect output <a href="/misc/goto?guid=4958991432861854003">#23226</a></li> </ul> <h3>Plugins (experimental)</h3> <ul> <li>New <code>plugin</code> command to manager plugins with <code>install</code>, <code>enable</code>, <code>disable</code>, <code>rm</code>, <code>inspect</code>, <code>set</code>subcommands <a href="/misc/goto?guid=4958991433120752810">#23446</a></li> </ul> <h3>Remote API (v1.24) & Client</h3> <ul> <li>Split the binary into two: <code>docker</code> (client) and <code>dockerd</code> (daemon) <a href="/misc/goto?guid=4958991526913349070">#20639</a></li> <li>Add <code>before</code> and <code>since</code> filters to <code>docker images --filter</code> <a href="/misc/goto?guid=4958991433248248444">#22908</a></li> <li>Add <code>--limit</code> option to <code>docker search</code> <a href="/misc/goto?guid=4958991433361386945">#23107</a></li> <li>Add <code>--filter</code> option to <code>docker search</code> <a href="/misc/goto?guid=4958991433484263412">#22369</a></li> <li>Add security options to <code>docker info</code> output <a href="/misc/goto?guid=4958991527089882318">#21172</a> <a href="/misc/goto?guid=4958991527187161167">#23520</a></li> <li>Add insecure registries to <code>docker info</code> output <a href="/misc/goto?guid=4958991527277840572">#20410</a></li> <li>Extend Docker authorization with TLS user information <a href="/misc/goto?guid=4958991527371443836">#21556</a></li> <li>devicemapper: expose Mininum Thin Pool Free Space through <code>docker info</code> <a href="/misc/goto?guid=4958991527469113366">#21945</a></li> <li>API now returns a JSON object when an error occurs making it more consistent <a href="/misc/goto?guid=4958991433603210084">#22880</a></li> <li>Prevent <code>docker run -i --restart</code> from hanging on exit <a href="/misc/goto?guid=4958991433722793093">#22777</a></li> <li>Fix API/CLI discrepancy on hostname validation <a href="/misc/goto?guid=4958991527624243770">#21641</a></li> <li>Fix discrepancy in the format of sizes in <code>stats</code> from HumanSize to BytesSize <a href="/misc/goto?guid=4958991527720409501">#21773</a></li> <li>authz: when request is denied return forbbiden exit code (403) <a href="/misc/goto?guid=4958991527819489870">#22448</a></li> <li>Windows: fix tty-related displaying issues <a href="/misc/goto?guid=4958992661183256651">#23878</a></li> </ul> <h3>Runtime</h3> <ul> <li>Add <code>--live-restore</code> daemon flag to keep containers running when daemon shuts down, and regain control on startup <a href="/misc/goto?guid=4958991433821646113">#23213</a></li> <li>Ability to add OCI-compatible runtimes (via <code>--add-runtime</code> daemon flag) and select one with <code>--runtime</code> on <code>create</code> and <code>run</code> <a href="/misc/goto?guid=4958991433936144777">#22983</a></li> <li>New <code>overlay2</code> graphdriver for Linux 4.0+ with multiple lower directory support <a href="/misc/goto?guid=4958991434044811792">#22126</a></li> <li>New load/save image events <a href="/misc/goto?guid=4958991434169072794">#22137</a></li> <li>Add support for reloading daemon configuration through systemd <a href="/misc/goto?guid=4958991434296181861">#22446</a></li> <li>Add disk quota support for btrfs <a href="/misc/goto?guid=4958991434420598655">#19651</a></li> <li>Add disk quota support for zfs <a href="/misc/goto?guid=4958991434525287678">#21946</a></li> <li>Add support for <code>docker run --pid=container:<id></code> <a href="/misc/goto?guid=4958991434657502859">#22481</a></li> <li>Align default seccomp profile with selected capabilities <a href="/misc/goto?guid=4958991434772581363">#22554</a></li> <li>Add a <code>daemon reload</code> event when the daemon reloads its configuration <a href="/misc/goto?guid=4958991434900034004">#22590</a></li> <li>Add <code>trace</code> capability in the pprof profiler to show execution traces in binary form <a href="/misc/goto?guid=4958991435005372181">#22715</a></li> <li>Add a <code>detach</code> event <a href="/misc/goto?guid=4958991435119573403">#22898</a></li> <li>Add support for setting sysctls with <code>--sysctl</code> <a href="/misc/goto?guid=4958991528295669912">#19265</a></li> <li>Add <code>--storage-opt</code> flag to <code>create</code> and <code>run</code> allowing to set <code>size</code> on devicemapper <a href="/misc/goto?guid=4958991528384997966">#19367</a></li> <li>Add <code>--oom-score-adjust</code> daemon flag with a default value of <code>-500</code> making the daemon less likely to be killed before containers <a href="/misc/goto?guid=4958992661683321890">#24516</a></li> <li>Undeprecate the <code>-c</code> short alias of <code>--cpu-shares</code> on <code>run</code>, <code>build</code>, <code>create</code>, <code>update</code> <a href="/misc/goto?guid=4958991435250515203">#22621</a></li> <li>Prevent from using aufs and overlay graphdrivers on an eCryptfs mount <a href="/misc/goto?guid=4958991435376586176">#23121</a></li> <li>Fix issues with tmpfs mount ordering <a href="/misc/goto?guid=4958991435503393067">#22329</a></li> <li>Created containers are no longer listed on <code>docker ps -a -f exited=0</code> <a href="/misc/goto?guid=4958991435629712434">#21947</a></li> <li>Fix an issue where containers are stuck in a "Removal In Progress" state <a href="/misc/goto?guid=4958991435753763947">#22423</a></li> <li>Fix bug that was returning an HTTP 500 instead of a 400 when not specifying a command on run/create <a href="/misc/goto?guid=4958991435886687596">#22762</a></li> <li>Fix bug with <code>--detach-keys</code> whereby input matching a prefix of the detach key was not preserved<a href="/misc/goto?guid=4958991436016830147">#22943</a></li> <li>SELinux labeling is now disabled when using <code>--privileged</code> mode <a href="/misc/goto?guid=4958991436136261146">#22993</a></li> <li>If volume-mounted into a container, <code>/etc/hosts</code>, <code>/etc/resolv.conf</code>, <code>/etc/hostname</code> are no longer SELinux-relabeled <a href="/misc/goto?guid=4958991436136261146">#22993</a></li> <li>Fix inconsistency in <code>--tmpfs</code> behavior regarding mount options <a href="/misc/goto?guid=4958991436278249626">#22438</a></li> <li>Fix an issue where daemon hangs at startup <a href="/misc/goto?guid=4958991436409751691">#23148</a></li> <li>Ignore SIGPIPE events to prevent journald restarts to crash docker in some cases <a href="/misc/goto?guid=4958991436539755253">#22460</a></li> <li>Containers are not removed from stats list on error <a href="/misc/goto?guid=4958991528842024207">#20835</a></li> <li>Fix <code>on-failure</code> restart policy when daemon restarts <a href="/misc/goto?guid=4958991528936511247">#20853</a></li> <li>Fix an issue with <code>stats</code> when a container is using another container's network <a href="/misc/goto?guid=4958991529023215146">#21904</a></li> </ul> <h3>Swarm Mode</h3> <ul> <li>New <code>swarm</code> command to manage swarms with <code>init</code>, <code>join</code>, <code>join-token</code>, <code>leave</code>, <code>update</code>subcommands <a href="/misc/goto?guid=4958991436695814871">#23361</a> <a href="/misc/goto?guid=4958992662196896581">#24823</a></li> <li>New <code>service</code> command to manage swarm-wide services with <code>create</code>, <code>inspect</code>, <code>update</code>, <code>rm</code>, <code>ps</code>subcommands <a href="/misc/goto?guid=4958991436695814871">#23361</a> <a href="/misc/goto?guid=4958992662293231210">#25140</a></li> <li>New <code>node</code> command to manage nodes with <code>accept</code>, <code>promote</code>, <code>demote</code>, <code>inspect</code>, <code>update</code>, <code>ps</code>, <code>ls</code>and <code>rm</code> subcommands <a href="/misc/goto?guid=4958991436695814871">#23361</a> <a href="/misc/goto?guid=4958992662293231210">#25140</a></li> <li>(experimental) New <code>stack</code> and <code>deploy</code> commands to manage and deploy multi-service applications<a href="/misc/goto?guid=4958991436853951800">#23522</a> <a href="/misc/goto?guid=4958992662293231210">#25140</a></li> </ul> <h3>Volume</h3> <ul> <li>Add support for local and global volume scopes (analogous to network scopes) <a href="/misc/goto?guid=4958991436976913904">#22077</a></li> <li>Allow volume drivers to provide a <code>Status</code> field <a href="/misc/goto?guid=4958991529215364186">#21006</a></li> <li>Add name/driver filter support for volume <a href="/misc/goto?guid=4958991529307967218">#21361</a></li> <li>Mount/Unmount operations now receives an opaque ID to allow volume drivers to differentiate between two callers <a href="/misc/goto?guid=4958991437102889186">#21015</a></li> <li>Fix issue preventing to remove a volume in a corner case <a href="/misc/goto?guid=4958991437232116522">#22103</a></li> <li>Windows: Enable auto-creation of host-path to match Linux <a href="/misc/goto?guid=4958991529471730813">#22094</a></li> </ul> <h3>DEPRECATION</h3> <ul> <li>Environment variables <code>DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE</code> and<code>DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE</code> have been renamed to<code>DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE</code> and <code>DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE</code>respectively <a href="/misc/goto?guid=4958991437360532782">#22574</a></li> <li>Remove deprecated <code>syslog-tag</code>, <code>gelf-tag</code>, <code>fluentd-tag</code> log option in favor of the more generic<code>tag</code> one <a href="/misc/goto?guid=4958991437478816723">#22620</a></li> <li>Remove deprecated feature of passing HostConfig at API container start <a href="/misc/goto?guid=4958991437619981589">#22570</a></li> <li>Remove deprecated <code>-f</code>/<code>--force</code> flag on docker tag <a href="/misc/goto?guid=4958991437745780534">#23090</a></li> <li>Remove deprecated <code>/containers/<id|name>/copy</code> endpoint <a href="/misc/goto?guid=4958991437872146312">#22149</a></li> <li>Remove deprecated <code>docker ps</code> flags <code>--since</code> and <code>--before</code> <a href="/misc/goto?guid=4958991529725868519">#22138</a></li> <li>Deprecate the old 3-args form of <code>docker import</code> <a href="/misc/goto?guid=4958991438000760546">#23273</a></li> </ul> <h2>下载</h2> <h3>Regular</h3> <blockquote> <p><strong>deb/rpm install</strong>: <code>curl -fsSL https://get.docker.com/ | sh</code><br /> <strong>Linux 64bit tgz</strong>: <a href="/misc/goto?guid=4958992662816706595">https://get.docker.com/builds/Linux/x86_64/docker-1.12.0.tgz</a><br /> <strong>Darwin/OSX 64bit client tgz</strong>: <a href="/misc/goto?guid=4958992662893886282">https://get.docker.com/builds/Darwin/x86_64/docker-1.12.0.tgz</a><br /> <strong>Windows 64bit zip</strong>: <a href="/misc/goto?guid=4958992662992482507">https://get.docker.com/builds/Windows/x86_64/docker-1.12.0.zip</a><br /> <strong>Windows 32bit client zip</strong>: <a href="/misc/goto?guid=4958992663069221286">https://get.docker.com/builds/Windows/i386/docker-1.12.0.zip</a></p> </blockquote> <h3>With experimental features</h3> <blockquote> <p><strong>deb/rpm install</strong>: <code>curl -fsSL https://experimental.docker.com/ | sh</code><br /> <strong>Linux 64bit tgz</strong>: <a href="/misc/goto?guid=4958992663161095836">https://experimental.docker.com/builds/Linux/x86_64/docker-1.12.0.tgz</a><br /> <strong>Darwin/OSX 64bit client tgz</strong>: <a href="/misc/goto?guid=4958992663246162030">https://experimental.docker.com/builds/Darwin/x86_64/docker-1.12.0.tgz</a><br /> <strong>Windows 64bit zip</strong>: <a href="/misc/goto?guid=4958992663334571217">https://experimental.docker.com/builds/Windows/x86_64/docker-1.12.0.zip</a><br /> <strong>Windows 32bit client zip</strong>: <a href="/misc/goto?guid=4958992663415330205">https://experimental.docker.com/builds/Windows/i386/docker-1.12.0.zip</a></p> </blockquote> <h3>源代码</h3> <ul> <li><a href="/misc/goto?guid=4958992663504500294" rel="nofollow"><strong>Source code</strong> (zip)</a></li> <li><a href="/misc/goto?guid=4958992663588431861" rel="nofollow"><strong>Source code</strong> (tar.gz)</a></li> </ul> <p> </p>