2016-08-22 4 views
3

Docker Neuling hier. Ich verwende dieses Tutorial als Beispiel: http://coding.jandavid.de/2016/01/22/dockerizing-sinatra/Warum zeigt docker-machine eine leere Liste an?

Ich bin auf einem Mac mit El Cap. Ausführen des neuesten Docker für Mac.

Ich habe ein Docker Bild

$ 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 

Dann für die Ausführung von Containern I geprüft. Keiner. Wie erwartet: $ Docker-Maschine ls Name ACTIVE URL SWARM DOCKER FEHLER DRIVER STATE

$

Next betreibe ich den Container:

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 

ok aussieht, aber:

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

Noch keine Behälter. Hier sind einige weitere Dateien:

[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/* 

Auch

[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; 
} 

Hier ist der Verzeichnisbaum mit denen ich arbeite:

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

3 directories, 6 files 
$ 

Frage: Warum bin ich nicht einen laufenden Behälter zeigt?

DANKE!

Antwort

8

Docker-Maschine dient zum Konfigurieren von Remote-Docker-Hosts, einschließlich derer, die in einer VM von Windows und MacOS vor der Version 1.12 verwendet wurden. Da Sie auf dem Docker-CLI sind und mit der Engine sprechen, brauchen Sie keine Docker-Maschine.

Um Ihre laufenden Container anzuzeigen, verwenden Sie docker ps, und geben Sie das Argument an, um auch bereits entfernte Container anzuzeigen, die noch nicht entfernt wurden. Und um Ihr gebautes Bild zu sehen, das ist docker images. Werfen Sie einen Blick auf die docker user guide für weitere Informationen zum Ausführen von Docker.

Verwandte Themen