<p>According to the docs: </p>

<p><a href="https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run" rel="nofollow noreferrer">https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run</a></p>

<p><code>kubectl run NAME --image=image</code></p>

<p>will run an image.</p>

<p>Some questions:</p>

<ul>
<li><p>I assume this is a pod rather than a container?  </p></li>
<li><p>And I assume NAME is associated with the pod? </p></li>
</ul>

<p>Snowcrash, you are correct. This is basically the same as docker run command. So using <code>kubectl run NAME --image=image</code> will exactly run a <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod/#what-is-a-pod" rel="noreferrer">pod</a> named <code>NAME</code> from docker image called <code>image</code>.
You can check what exactly is happening by using <code>kubectl describe pod NAME</code>
Here is an example of <code>kubectl run nginx --image=nginx</code></p>

<pre><code>Events:
  Type     Reason            Age                From                    Message
  ----     ------            ----               ----                    -------
  Warning  FailedScheduling  89s (x2 over 89s)  default-scheduler       0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled         19s                default-scheduler       Successfully assigned default/nginx-7cdbd8cdc9-glkxq to centos-master
  Normal   Pulling           18s                kubelet, centos-master  pulling image "nginx"
  Normal   Pulled            14s                kubelet, centos-master  Successfully pulled image "nginx"
  Normal   Created           14s                kubelet, centos-master  Created container
  Normal   Started           14s                kubelet, centos-master  Started container
</code></pre>

<p>So what happened after <code>kubectl run</code> is:</p>

<ul>
<li><p>Scheduler was trying to pick a node to launch the container (at first
it failed due to a taints, because my node is in NotReady state (not
important at the moment, but you can read more about it <a href="https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" rel="noreferrer">here</a>)</p></li>
<li><p>Scheduler successfully assigned the pod to the node (centos-master).</p></li>
<li><p>The kubelet checks if the docker image is available and pulls it if
necessary. </p></li>
<li><p>Then the container is created and started.</p></li>
</ul>

<p>*<a href="https://medium.com/@mhausenblas/the-kubectl-run-command-27c68de5cb76" rel="noreferrer">here</a> you can find an interesting article which explains this in a little more detailed way. </p>

<p>The name is associated with pod, because Pod is the smallest unit of work in Kubernetes. Each pod can contain one or more containers. All the containers in the Pod have the same IP address and port space, can access shared storage on the Node hosting that pod. </p>

<p>Basically the <code>kubectl</code> command-line tool supports several different ways to <a href="https://kubernetes.io/docs/concepts/overview/object-management-kubectl/overview/#imperative-commands" rel="noreferrer">create and manage</a> Kubernetes objects:</p>

<ul>
<li>Imperative commands </li>
<li>Imperative object configuration </li>
<li>Declarative object configuration</li>
</ul>

<p>*you can find more about them in this <a href="https://stackoverflow.com/questions/48015637/kubernetes-kubectl-run-vs-create-and-apply">StackOverflow answer</a> or this Medium <a href="https://medium.com/bitnami-perspectives/imperative-declarative-and-a-few-kubectl-tricks-9d6deabdde" rel="noreferrer">article</a>. </p>

<p><code>run</code> command is an example of imperative approach. Is  the simplest to start </p>

<blockquote>
  <p>[...] Because this technique operates directly on live objects, it
  provides no history of previous configurations.</p>
</blockquote>
