![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcRHeyoVds1mYox2MaVnRyQmdRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P1ATOwIDNyIjM5AjMwcTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
Docker的命令按照使用一个容器的顺序进行。
能查看到docker信息,说明docker是安装好的。
由于在上文中已经运行过一次该条命令,所以ubuntu的镜像已经下载到了本地,此次运行就可以使用该镜像产生一个容器,在容器启动后,上过<code>-it</code>获取到命令行,运行命令<code>ls</code>。
使用–name标志可以给容器定义一个名字,如
docker run –name this_is_first_ubunt_container -it ubuntu
就会创建一个名字叫做this_is_first_ubunt_container的ubuntu的容器。名字只能使用大小写字母,数字,下划线,原点和横线,即[a-zA-Z0-9_.-]。
关于docker run的帮助可以使用<code>docker run --help</code>获取。
使用<code>docker ps</code>命令可以看到当前正在运行的容器有哪些,并给出了一些相应的属性。给命令增加参数<code>-a</code>就可以获取当前所有的容器,包括已经停止的,如下。
docker ps -n x,显示最后x个容器,不管容器正在运行还是停止。
docker start
docker start this_is_first_ubunt_container
docker attach this_is_first_ubunt_container
创建一个有名字的container,停止它,启动它。
上面创建的ubuntu是交互式运行的容器(interactive container),也可以创建一个长期运行的容器–守护式容器(daemonized container)。
docker run –restart=always –name daemon_ubuntu -d ubuntu /bin/sh -c “while true;do echo hello world;sleep 1;done”
–restart=always 无论容器的退出代码为何,都自动重启。
–restart=on-failure 当容器退出代码不为0时,自动重启。
–restart=on-failure:5 重启5次。
运行中的Docker容器是无法删除的。
docker images
Linux /var/lib/docker Mac $HOME/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
docker pull ubuntu:16.10 获取ubuntu仓库中tag为16.10的镜像。
docker pull -a ubuntu 获取ubuntu仓库中所有镜像。
docker images ubuntu 列出本地所有ubuntu仓库的镜像。
docker run 的时候如果没有指定镜像的版本,则拉取最新版本进行创建。
Docker Hub 中仓库分为两种,一种是用户仓库(user repository),这种是用户创建使用的的,命名方式为username/repositoryname,意义为用户名/仓库名;一种是顶层仓库(top-repository),由docker内部人员管理。
docker search 查找Docker Hub上公用可用镜像。
获取镜像时,格式其实可以看做 用户/仓库:标签。 由于很多仓库为官网所有,所有很多都变成了 仓库:标签,如上面写的 ubuntu:16.10,ubutnu仓库的tag为16.10的镜像。
构建镜像
docker commit
docker build 和 Dockerfile文件
一般来说,我们不是真正「创建」了一个镜像,而是基于一个已有的镜像,构建了一个新的镜像。
<a href="https://github.com/yeasy/docker_practice/">Docker 从入门到实践</a>
<a href="#">第一本Docker书</a>
<a href="http://blog.csdn.net/hyzhou33550336/article/details/41703811">一个比较详细的命令用法</a>