为什么docker-machine显示空列表?

时间:2016-08-22 02:14:35

标签: docker

Docker新手在这里。我使用this tutorial作为示例。

我在运行El Cap的Mac上。运行最新的Docker for mac。

我创建了一个泊坞窗图片

$ docker build -t pitosalas/sinatra-example .
Sending build context to Docker daemon 9.728 kB
Step 1 : FROM phusion/passenger-ruby23:0.9.19
 ---> 6841e494987f
Step 2 : ENV HOME /root
 ---> Using cache
 ---> 94013634dd29
Step 3 : CMD /sbin/my_init
 ---> Using cache
 ---> 545db4245647
Step 4 : RUN rm -f /etc/service/nginx/down
 ---> Using cache
 ---> 1a5361bf707b
Step 5 : RUN rm /etc/nginx/sites-enabled/default
 ---> Using cache
 ---> 6d884a990bd7
Step 6 : ADD docker/vhost.conf /etc/nginx/sites-enabled/app.conf
 ---> Using cache
 ---> 471fcf124466
Step 7 : RUN mkdir /home/app/webapp
 ---> Using cache
 ---> a0336183d1f0
Step 8 : WORKDIR /tmp
 ---> Using cache
 ---> 38b834783e4f
Step 9 : COPY app/Gemfile /tmp/
 ---> Using cache
 ---> 6541c0cbf6eb
Step 10 : COPY app/Gemfile.lock /tmp/
 ---> Using cache
 ---> 1be89d7bd57b
Step 11 : RUN bundle install
 ---> Using cache
 ---> 3b21f88e6bcf
Step 12 : COPY app /home/app/webapp
 ---> Using cache
 ---> 8bc0cb084d99
Step 13 : RUN chown -R app:app /home/app
 ---> Using cache
 ---> 4bba23481f1f
Step 14 : RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 ---> Using cache
 ---> d85a89da09c2
Successfully built d85a89da09c2

然后我检查了运行容器。没有。正如所料:

$ docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS
$ 

接下来我运行容器:

docker run -p 4567:80 pitosalas/sinatra-example
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/my_init.d/30_presetup_nginx.sh...
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 8
Aug 22 02:07:22 dd3474178cd5 syslog-ng[18]: syslog-ng starting up; version='3.5.6'
ok: run: /etc/service/nginx-log-forwarder: (pid 27) 0s
[ 2016-08-22 02:07:23.8489 28/7fc94dfd9780 age/Wat/WatchdogMain.cpp:1291 ]: Starting Passenger watchdog...
[ 2016-08-22 02:07:23.8769 31/7f07e849d780 age/Cor/CoreMain.cpp:982 ]: Starting Passenger core...
[ 2016-08-22 02:07:23.8770 31/7f07e849d780 age/Cor/CoreMain.cpp:235 ]: Passenger core running in multi-application mode.
[ 2016-08-22 02:07:23.8842 31/7f07e849d780 age/Cor/CoreMain.cpp:732 ]: Passenger core online, PID 31
[ 2016-08-22 02:07:23.9104 42/7f66f0bb5780 age/Ust/UstRouterMain.cpp:529 ]: Starting Passenger UstRouter...
[ 2016-08-22 02:07:23.9155 42/7f66f0bb5780 age/Ust/UstRouterMain.cpp:342 ]: Passenger UstRouter online, PID 42

看起来不错,但是:

$ docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS
$

仍然没有容器。以下是一些文件:

[Dockerfile]
FROM phusion/passenger-ruby23:0.9.19

# Set correct environment variables.
ENV HOME /root

# Use baseimage-docker's init process.
CMD ["/sbin/my_init"]

# Enable nginx and Passenger
RUN rm -f /etc/service/nginx/down

# Remove the default site
RUN rm /etc/nginx/sites-enabled/default

# Create virtual host
ADD docker/vhost.conf /etc/nginx/sites-enabled/app.conf

# Prepare folders
RUN mkdir /home/app/webapp

# Run Bundle in a cache efficient way
WORKDIR /tmp
COPY app/Gemfile /tmp/
COPY app/Gemfile.lock /tmp/
RUN bundle install

# Add our app
COPY app /home/app/webapp
RUN chown -R app:app /home/app

# Clean up when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

另外

[vhost.conf]
server {
    listen 80;
    server_name localhost;
    root /home/app/webapp/public;

    passenger_enabled on;
    passenger_user app;

    passenger_ruby /usr/bin/ruby2.3;
}

这是我正在使用的目录树:

$ tree
.
├── Dockerfile
├── app
│   ├── Gemfile
│   ├── Gemfile.lock
│   ├── app.rb
│   └── config.ru
├── docker
│   └── vhost.conf
└── tmp

3 directories, 6 files
$

为什么我没有展示正在运行的容器?

1 个答案:

答案 0 :(得分:9)

Docker计算机用于配置远程docker主机,包括在1.12版本之前由Windows和MacOS在VM中使用的主机。由于您在docker CLI上并与引擎通信,因此您不需要泊坞机。

要查看正在运行的容器,请使用docker ps,包含-a参数,以显示尚未删除的已退出容器。要查看您构建的图像,请docker images。有关运行docker的更多信息,请查看docker user guide