<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.7.0_131) on Wed Mar 29 10:24:01 UTC 2017 -->
<title>Protos.ContainerInfo.DockerInfoOrBuilder</title>
<meta name="date" content="2017-03-29">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Protos.ContainerInfo.DockerInfoOrBuilder";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../org/apache/mesos/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../org/apache/mesos/Protos.ContainerInfo.MesosInfo.html" title="class in org.apache.mesos"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html" target="_top">Frames</a></li>
<li><a href="Protos.ContainerInfo.DockerInfoOrBuilder.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.mesos</div>
<h2 title="Interface Protos.ContainerInfo.DockerInfoOrBuilder" class="title">Interface Protos.ContainerInfo.DockerInfoOrBuilder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo</a>, <a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.Builder.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo.Builder</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../org/apache/mesos/Protos.ContainerInfo.html" title="class in org.apache.mesos">Protos.ContainerInfo</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="strong">Protos.ContainerInfo.DockerInfoOrBuilder</span></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getForcePullImage()">getForcePullImage</a></strong>()</code>
<div class="block"><code>optional bool force_pull_image = 6;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getImage()">getImage</a></strong>()</code>
<div class="block"><code>required string image = 1;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getImageBytes()">getImageBytes</a></strong>()</code>
<div class="block"><code>required string image = 1;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.Network.html" title="enum in org.apache.mesos">Protos.ContainerInfo.DockerInfo.Network</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getNetwork()">getNetwork</a></strong>()</code>
<div class="block"><code>optional .mesos.ContainerInfo.DockerInfo.Network network = 2 [default = HOST];</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Parameter.html" title="class in org.apache.mesos">Protos.Parameter</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getParameters(int)">getParameters</a></strong>(int&nbsp;index)</code>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getParametersCount()">getParametersCount</a></strong>()</code>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../org/apache/mesos/Protos.Parameter.html" title="class in org.apache.mesos">Protos.Parameter</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getParametersList()">getParametersList</a></strong>()</code>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.ParameterOrBuilder.html" title="interface in org.apache.mesos">Protos.ParameterOrBuilder</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getParametersOrBuilder(int)">getParametersOrBuilder</a></strong>(int&nbsp;index)</code>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;? extends <a href="../../../org/apache/mesos/Protos.ParameterOrBuilder.html" title="interface in org.apache.mesos">Protos.ParameterOrBuilder</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getParametersOrBuilderList()">getParametersOrBuilderList</a></strong>()</code>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMapping.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMapping</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPortMappings(int)">getPortMappings</a></strong>(int&nbsp;index)</code>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPortMappingsCount()">getPortMappingsCount</a></strong>()</code>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMapping.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMapping</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPortMappingsList()">getPortMappingsList</a></strong>()</code>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPortMappingsOrBuilder(int)">getPortMappingsOrBuilder</a></strong>(int&nbsp;index)</code>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;? extends <a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPortMappingsOrBuilderList()">getPortMappingsOrBuilderList</a></strong>()</code>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getPrivileged()">getPrivileged</a></strong>()</code>
<div class="block"><code>optional bool privileged = 4 [default = false];</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getVolumeDriver()">getVolumeDriver</a></strong>()</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#getVolumeDriverBytes()">getVolumeDriverBytes</a></strong>()</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#hasForcePullImage()">hasForcePullImage</a></strong>()</code>
<div class="block"><code>optional bool force_pull_image = 6;</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#hasImage()">hasImage</a></strong>()</code>
<div class="block"><code>required string image = 1;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#hasNetwork()">hasNetwork</a></strong>()</code>
<div class="block"><code>optional .mesos.ContainerInfo.DockerInfo.Network network = 2 [default = HOST];</code></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#hasPrivileged()">hasPrivileged</a></strong>()</code>
<div class="block"><code>optional bool privileged = 4 [default = false];</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html#hasVolumeDriver()">hasVolumeDriver</a></strong>()</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="hasImage()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasImage</h4>
<pre>boolean&nbsp;hasImage()</pre>
<div class="block"><code>required string image = 1;</code>

 <pre>
 The docker image that is going to be passed to the registry.
 </pre></div>
</li>
</ul>
<a name="getImage()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImage</h4>
<pre>java.lang.String&nbsp;getImage()</pre>
<div class="block"><code>required string image = 1;</code>

 <pre>
 The docker image that is going to be passed to the registry.
 </pre></div>
</li>
</ul>
<a name="getImageBytes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImageBytes</h4>
<pre>com.google.protobuf.ByteString&nbsp;getImageBytes()</pre>
<div class="block"><code>required string image = 1;</code>

 <pre>
 The docker image that is going to be passed to the registry.
 </pre></div>
</li>
</ul>
<a name="hasNetwork()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasNetwork</h4>
<pre>boolean&nbsp;hasNetwork()</pre>
<div class="block"><code>optional .mesos.ContainerInfo.DockerInfo.Network network = 2 [default = HOST];</code></div>
</li>
</ul>
<a name="getNetwork()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNetwork</h4>
<pre><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.Network.html" title="enum in org.apache.mesos">Protos.ContainerInfo.DockerInfo.Network</a>&nbsp;getNetwork()</pre>
<div class="block"><code>optional .mesos.ContainerInfo.DockerInfo.Network network = 2 [default = HOST];</code></div>
</li>
</ul>
<a name="getPortMappingsList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPortMappingsList</h4>
<pre>java.util.List&lt;<a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMapping.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMapping</a>&gt;&nbsp;getPortMappingsList()</pre>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</li>
</ul>
<a name="getPortMappings(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPortMappings</h4>
<pre><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMapping.html" title="class in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMapping</a>&nbsp;getPortMappings(int&nbsp;index)</pre>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</li>
</ul>
<a name="getPortMappingsCount()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPortMappingsCount</h4>
<pre>int&nbsp;getPortMappingsCount()</pre>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</li>
</ul>
<a name="getPortMappingsOrBuilderList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPortMappingsOrBuilderList</h4>
<pre>java.util.List&lt;? extends <a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder</a>&gt;&nbsp;getPortMappingsOrBuilderList()</pre>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</li>
</ul>
<a name="getPortMappingsOrBuilder(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPortMappingsOrBuilder</h4>
<pre><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos">Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder</a>&nbsp;getPortMappingsOrBuilder(int&nbsp;index)</pre>
<div class="block"><code>repeated .mesos.ContainerInfo.DockerInfo.PortMapping port_mappings = 3;</code></div>
</li>
</ul>
<a name="hasPrivileged()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPrivileged</h4>
<pre>boolean&nbsp;hasPrivileged()</pre>
<div class="block"><code>optional bool privileged = 4 [default = false];</code></div>
</li>
</ul>
<a name="getPrivileged()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrivileged</h4>
<pre>boolean&nbsp;getPrivileged()</pre>
<div class="block"><code>optional bool privileged = 4 [default = false];</code></div>
</li>
</ul>
<a name="getParametersList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParametersList</h4>
<pre>java.util.List&lt;<a href="../../../org/apache/mesos/Protos.Parameter.html" title="class in org.apache.mesos">Protos.Parameter</a>&gt;&nbsp;getParametersList()</pre>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code>

 <pre>
 Allowing arbitrary parameters to be passed to docker CLI.
 Note that anything passed to this field is not guaranteed
 to be supported moving forward, as we might move away from
 the docker CLI.
 </pre></div>
</li>
</ul>
<a name="getParameters(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameters</h4>
<pre><a href="../../../org/apache/mesos/Protos.Parameter.html" title="class in org.apache.mesos">Protos.Parameter</a>&nbsp;getParameters(int&nbsp;index)</pre>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code>

 <pre>
 Allowing arbitrary parameters to be passed to docker CLI.
 Note that anything passed to this field is not guaranteed
 to be supported moving forward, as we might move away from
 the docker CLI.
 </pre></div>
</li>
</ul>
<a name="getParametersCount()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParametersCount</h4>
<pre>int&nbsp;getParametersCount()</pre>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code>

 <pre>
 Allowing arbitrary parameters to be passed to docker CLI.
 Note that anything passed to this field is not guaranteed
 to be supported moving forward, as we might move away from
 the docker CLI.
 </pre></div>
</li>
</ul>
<a name="getParametersOrBuilderList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParametersOrBuilderList</h4>
<pre>java.util.List&lt;? extends <a href="../../../org/apache/mesos/Protos.ParameterOrBuilder.html" title="interface in org.apache.mesos">Protos.ParameterOrBuilder</a>&gt;&nbsp;getParametersOrBuilderList()</pre>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code>

 <pre>
 Allowing arbitrary parameters to be passed to docker CLI.
 Note that anything passed to this field is not guaranteed
 to be supported moving forward, as we might move away from
 the docker CLI.
 </pre></div>
</li>
</ul>
<a name="getParametersOrBuilder(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParametersOrBuilder</h4>
<pre><a href="../../../org/apache/mesos/Protos.ParameterOrBuilder.html" title="interface in org.apache.mesos">Protos.ParameterOrBuilder</a>&nbsp;getParametersOrBuilder(int&nbsp;index)</pre>
<div class="block"><code>repeated .mesos.Parameter parameters = 5;</code>

 <pre>
 Allowing arbitrary parameters to be passed to docker CLI.
 Note that anything passed to this field is not guaranteed
 to be supported moving forward, as we might move away from
 the docker CLI.
 </pre></div>
</li>
</ul>
<a name="hasForcePullImage()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasForcePullImage</h4>
<pre>boolean&nbsp;hasForcePullImage()</pre>
<div class="block"><code>optional bool force_pull_image = 6;</code>

 <pre>
 With this flag set to true, the docker containerizer will
 pull the docker image from the registry even if the image
 is already downloaded on the slave.
 </pre></div>
</li>
</ul>
<a name="getForcePullImage()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getForcePullImage</h4>
<pre>boolean&nbsp;getForcePullImage()</pre>
<div class="block"><code>optional bool force_pull_image = 6;</code>

 <pre>
 With this flag set to true, the docker containerizer will
 pull the docker image from the registry even if the image
 is already downloaded on the slave.
 </pre></div>
</li>
</ul>
<a name="hasVolumeDriver()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasVolumeDriver</h4>
<pre>@Deprecated
boolean&nbsp;hasVolumeDriver()</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
<div class="block"><code>optional string volume_driver = 7 [deprecated = true];</code>

 <pre>
 The name of volume driver plugin.
 </pre></div>
</li>
</ul>
<a name="getVolumeDriver()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVolumeDriver</h4>
<pre>@Deprecated
java.lang.String&nbsp;getVolumeDriver()</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
<div class="block"><code>optional string volume_driver = 7 [deprecated = true];</code>

 <pre>
 The name of volume driver plugin.
 </pre></div>
</li>
</ul>
<a name="getVolumeDriverBytes()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getVolumeDriverBytes</h4>
<pre>@Deprecated
com.google.protobuf.ByteString&nbsp;getVolumeDriverBytes()</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
<div class="block"><code>optional string volume_driver = 7 [deprecated = true];</code>

 <pre>
 The name of volume driver plugin.
 </pre></div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../org/apache/mesos/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/mesos/Protos.ContainerInfo.DockerInfo.PortMappingOrBuilder.html" title="interface in org.apache.mesos"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../org/apache/mesos/Protos.ContainerInfo.MesosInfo.html" title="class in org.apache.mesos"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/mesos/Protos.ContainerInfo.DockerInfoOrBuilder.html" target="_top">Frames</a></li>
<li><a href="Protos.ContainerInfo.DockerInfoOrBuilder.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
