Docker:启动容器,登入容器

这次介绍一下docker的启动容器和登录容器主机的方法。

列出containers:

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
ae8eafa4bdde        ubuntu              "/bin/bash"         10 days ago         Exited (255) 8 days ago                       quizzical_heyrovsky

启动container:

$ docker start quizzical_heyrovsky
quizzical_heyrovsky

查看container的运行状态:

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ae8eafa4bdde        ubuntu              "/bin/bash"         10 days ago         Up 5 minutes                            quizzical_heyrovsky

登录进这个container:

$ docker exec -i -t quizzical_heyrovsky bash
root@ae8eafa4bdde:/#

注意我们使用上面「start」的方式来启动container,默认会让container以detached方式运行。所谓detached的运行模式,就是不会因为调用者的进程结束,而导致container自身的结束。

简单来讲,就是让container保持在后台运行的状态。

然后,「exec」的方式登录进container,而不是使用「attach」的方式,就是让我们登录进container,执行完命令后,保证container自己不退出。

「exec」的「-i」选项就是interactive mode的意思。我们想在容器的主机里面手工敲命令,看命令结果,而不是执行命令并退出,所以要用interactive mode。

「-t」选项的意义就是启动一个新的终端。因为我们要用bash,而bash需要运行在终端里,所以「-t」选项是必不可少的。

注意我们创建了container以后,就不要再使用docker的run命令来操作了,因为run命令的作用是同时「创建」一个新的容器,并「启动」这个容器里面的image。一旦容器已经在本机创建了,就应该使用上面的流程。