Docker总结
引入
由于引入了Windows操作系统的计算机,因此将基于Windows进行说明。
首先,您需要从这里下载安装程序并进行安装。
安装完成后,将会生成一个名为Docker Quickstart Terminal的快捷方式。
* 附加说明于2016年07月20日:似乎有一个名为Docker Toolbox的工具箱新发布了,因此已将上述链接更换为该工具箱链接。
登录
当您启动Docker快速入门终端时,会打开命令提示符。
您可以直接输入docker命令,或者
$ docker
Usage: docker [OPTIONS] COMMAND [arg...]
A self-sufficient runtime for linux containers.
Options:
-D, --debug=false Enable debug mode
-d, --daemon=false Enable daemon mode
-H, --host=[] Daemon socket(s) to connect to
-h, --help=false Print usage
-l, --log-level=info Set the logging level
・
・
・
top Lookup the running processes of a container
unpause Unpause a paused container
version Show the Docker version information
wait Block until a container stops, then print its exit code
Run 'docker COMMAND --help' for more information on a command.
$
或者,您可以通过boot2docker ssh命令登录到虚拟机,然后使用docker命令。
$ boot2docker ssh
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.6.2, build master : 4534e65 - Wed May 13 21:24:28 UTC 2015
Docker version 1.6.2, build 7c8fca2
docker@boot2docker:~$
使用Docker镜像创建服务器
我将从 docker 镜像创建一个服务器。假设我们要以 centos 为基础创建服务器。在这种情况下,我们可以使用 docker search 命令轻松找到 docker 镜像。
docker@boot2docker:~$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1094 [OK]
tutum/centos Centos image with SSH access. For the root... 13 [OK]
blalor/centos Bare-bones base CentOS 6.5 image 9 [OK]
torusware/speedus-centos Always updated official CentOS docker imag... 6 [OK]
million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 5 [OK]
jdeathe/centos-ssh CentOS-6 6.6 x86_64 / EPEL Repo. / OpenSSH... 3 [OK]
layerworx/centos A general CentOS 6 image with the EPEL6 an... 2 [OK]
jdeathe/centos-ssh-mysql CentOS-6 6.6 x86_64 / MySQL. 2 [OK]
pdericson/centos Docker image for CentOS 0 [OK]
nathonfowlie/centos-jre Latest CentOS image with the JRE pre-insta... 0 [OK]
由于有关野生Docker镜像数量众多的信息,因此(尤其是在企业环境中使用时)建议使用官方镜像。这次我们将使用被标记为“centos”的官方镜像。
那么,开始吧。
docker@boot2docker:~$ docker pull centos
latest: Pulling from centos
c852f6d61e65: Pull complete
7322fbe74aa5: Already exists
f1b10cd84249: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:a4627c43bafc86705af2e8a5ea1f0ed34fbf27b6e7a392e5ee45dbd4736627cc
Status: Downloaded newer image for centos:latest
docker@boot2docker:~$
然后… …)
docker@boot2docker:~$ docker run -i -t --name guest centos:latest /bin/bash
[root@557d34c7c799 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@557d34c7c799 /]#
通过这个命令成功创建了服务器,并且已经登录成功了。非常简单。使用”exit”命令可以登出。
即使刚刚登出了,也可以通过”docker start”命令再次登录,然后使用”docker attach”命令。但是,在执行”docker start”或”docker attach”命令时需要知道容器ID。可以通过”docker ps”命令来查找容器ID。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
那个?对于找不到任何显示而感到惊讶的人,请尝试输入“docker ps -a”。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
557d34c7c799 centos:latest "/bin/bash" 24minutes ago Exited (0) 15 minutes ago guest
・
・
・
已经显示了。这表示容器存在但处于停止状态。要启动容器,请键入docker start [容器ID]。
嗯?容器ID??你指那个10位以上的随机数吗??
我知道输入容器ID可能有点麻烦,但只要输入到能唯一确定容器ID的程度就可以了。个人认为这个规则挺好的。
$ docker start 557
557
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
557d34c7c799 centos:latest "/bin/bash" 30 minutes ago Up 17 seconds guest
不是通过docker ps -a命令,而是通过docker ps命令成功显示了容器。要进一步登录容器,可以使用docker attach [容器ID]命令。
$ docker attach 557
[root@557d34c7c799 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
我成功地登录了CentOS,没有出现任何问题。
尝试使用Dockerfile
考虑到Dockerfile的可维护性,更常使用“docker”命令而不是“boot2docker ssh”。
(接下来…)