2015-05-11 25 views
14

Tôi có Dockerfile sauLàm cách nào để kiểm tra vùng chứa hoặc hình ảnh sau khi xây dựng docker?

############################################################ 
# Purpose : Dockerize Django App to be used in AWS EC2 
# Django : 1.8.1 
# OS  : Ubuntu 14.04 
# WebServer : nginx 
# Database : Postgres inside RDS 
# Python : 2.7 
# VERSION : 0.1 
############################################################ 

from ubuntu:14.04 

maintainer Kim Stacks, [email protected] 

# make sure package repository is up to date 
run echo "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe" > /etc/apt/sources.list 

run apt-get update 

# install python 

# install nginx 

Bên trong máy ảo của tôi, tôi đã làm như sau:

docker build -t ubuntu1404/djangoapp . 

Đó là thành công.

Tôi phải làm gì để chạy hình ảnh docker? Hình ảnh hoặc vùng chứa ở đâu?

Tôi đã cố gắng chạy

docker run ubuntu1404/djangoapp 

Không có gì xảy ra.

Những gì tôi thấy khi tôi chạy docker images

[email protected]:/var/virtual/Apps/DockerFiles/Django27InUbuntu# docker images 
REPOSITORY    TAG     IMAGE ID   CREATED    VIRTUAL SIZE 
ubuntu1404/djangoapp latest    cfb161605c8e  10 minutes ago  198.3 MB 
ubuntu     14.04    07f8e8c5e660  10 days ago   188.3 MB 
hello-world   latest    91c95931e552  3 weeks ago   910 B 

Khi tôi chạy docker ps, không có gì xuất hiện

Trả lời

8

Bạn cần phải đưa ra một lệnh chứa của bạn sẽ phải xử lý.

Ví dụ: sh

bạn có thể thử:

docker run -ti yourimage sh 

(-ti được sử dụng để giữ một thiết bị đầu cuối mở)

Nếu bạn muốn khởi chạy một daemon (giống như một máy chủ), bạn sẽ phải nhập một cái gì đó như:

docker run -d yourimage daemontolaunch 

Sử dụng docker help run để có thêm tùy chọn.

Bạn cũng có thể đặt hành vi mặc định bằng CMD instruction trong Dockerfile của mình để bạn không phải cung cấp lệnh này cho vùng chứa của mình mỗi lần bạn muốn chạy.

EDIT - khoảng chứa loại bỏ:

Container và hình ảnh khác nhau. Vùng chứa là trường hợp hình ảnh. Bạn có thể chạy nhiều vùng chứa từ cùng một hình ảnh.

Vùng chứa sẽ tự động dừng khi quá trình kết thúc. Nhưng vùng chứa không bị xóa (chỉ dừng lại, vì vậy bạn có thể khởi động lại nó). Nhưng nếu bạn muốn loại bỏ nó (loại bỏ một container không xóa hình ảnh), bạn phải cách để làm:

  • tự động loại bỏ nó vào cuối của quá trình này bằng cách thêm tùy chọn để --rmdocker run.

  • Xóa thủ công bằng cách sử dụng lệnh docker rm và đặt ID vùng chứa hoặc tên của vùng chứa (vùng chứa phải được dừng trước khi bị xóa, sử dụng docker stop cho điều này).

Một lệnh hữu ích:

Sử dụng docker ps vào danh sách container. -q để chỉ hiển thị ID vùng chứa, -a để hiển thị các vùng chứa đã dừng.

Thêm here.

EDIT 2:

This cũng có thể giúp bạn khám phá Docker nếu bạn không thử nó.

+0

cảm ơn bạn. Tôi có cần phải tắt thùng chứa không? nếu vậy, làm thế nào? –

+0

Tôi bối rối. Mục đích của daemon là gì? –

+0

Bạn có thể phải chạy vùng chứa docker của bạn trong nền, ví dụ để chạy một máy chủ web. Bạn cũng có thể làm điều đó mà không daemonize container của bạn, nhưng bạn phải để cho container chạy trong terminal của bạn, điều đó có thể không thực tế. Đừng ngần ngại đọc tài liệu chính thức và sử dụng hướng dẫn: Nó thực sự được thực hiện tốt. – vmonteco

2

Làm cách nào để kiểm tra vùng chứa hoặc hình ảnh sau khi xây dựng docker?

Để kiểm tra bạn có thể thêm kịch bản ghi bash mà sẽ thực hiện công việc http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/

Btw, từ đăng bài tôi thấy rằng nó không phù hợp với câu hỏi từ các tiêu đề.

Vì vậy, hãy thêm liên kết cho các linh hồn đến đây dựa trên tiêu đề ...

Các vấn đề liên quan