Câu trả lời:
Cách cụ thể để chạy nó phụ thuộc vào việc bạn đã cho hình ảnh một thẻ / tên hay không.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Với một cái tên (hãy sử dụng Ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Không có tên, chỉ cần sử dụng ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Vui lòng xem Docker chạy tham khảo để biết thêm thông tin.
docker ps
liệt kê các container, không phải hình ảnh. Nếu bạn muốn tạo một hình ảnh từ một container, bạn phải docker commit
. Bạn có thể sử dụng TÊN trong cam kết (ví dụ docker commit _NAME_ _imagename_
)
Thực hiện các bước sau:
$ docker images
Bạn sẽ nhận được một danh sách tất cả các hình ảnh Docker cục bộ với các thẻ được chỉ định.
$ docker run image_name:tag_name
Nếu bạn không chỉ định, tag_name
nó sẽ tự động chạy một hình ảnh với thẻ 'mới nhất'.
Thay vì image_name
, bạn cũng có thể chỉ định ID hình ảnh (không có tag_name).
Để liệt kê các hình ảnh Docker
$ docker images
Nếu ứng dụng của bạn muốn chạy với cổng 80 và bạn có thể hiển thị một cổng khác để liên kết cục bộ, hãy nói 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Bạn có thể xem hình ảnh có sẵn của mình bằng cách sử dụng:
docker images
Sau đó, bạn có thể chạy trong chế độ tách rời để thiết bị đầu cuối của bạn vẫn có thể sử dụng được. Bạn có một số tùy chọn để chạy nó bằng tên kho lưu trữ (có hoặc không có thẻ) hoặc ID hình ảnh:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Sau đó, bạn có thể kiểm tra container của bạn đang chạy bằng
docker ps
docker ps
cung cấp cho bạn một ID container. Bạn có thể sử dụng nó hoặc chỉ 2/3 ký tự đầu tiên để đi vào thùng chứa của bạn bằng cách sử dụng:
docker exec -it container_id /bin/bash
Và bạn có thể dừng nó bằng cách sử dụng docker stop container_id
và docker rm container_id
.
Bạn cũng có thể chạy container của mình với các -rm
đối số để nếu bạn dừng container của nó, nó sẽ tự động bị xóa.
Lấy tên hoặc id của hình ảnh bạn muốn chạy, bằng lệnh này:
docker images
Lệnh chạy Docker được sử dụng theo cách sau:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Dưới đây tôi đã bao gồm các tùy chọn công văn, tên, xuất bản, khối lượng và khởi động lại trước khi chỉ định tên hình ảnh hoặc id:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Ở đâu:
--detach , -d Run container in background and print container ID
--name Assign a name to the container
--publish , -p Publish a container’s port(s) to the host
--volume , -v Bind mount a volume
--restart Restart policy to apply when a container exits
Để biết thêm thông tin, vui lòng xem tham khảo chạy Docker chính thức .
Dưới đây là một ví dụ để chạy dịch vụ webdev trong Docker. Tên của hình ảnh là morrisjobke / webdav . Bạn có thể kéo nó từ Docker Hub .
Sau khi bạn chạy những hình ảnh này, bạn có thể truy cập vào phiên bản WebDAV tại http://localhost:8888/webdav
. Bên trong thư mục /var/webdav
được sử dụng như root WebDAV.
Bạn có thể chạy container này theo cách sau:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Tôi đã từng gặp vấn đề tương tự. Tôi đã chạy hình ảnh Docker của mình và nó đã tạo ra một thùng chứa với CONTAINER_ID cụ thể. Tôi muốn làm việc với cùng một container:
Đầu tiên chạy hình ảnh Docker của bạn:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Sau đó liệt kê tất cả các container bạn đã thực hiện:
sudo docker ps -a
Và chọn vùng chứa mà bạn muốn làm việc (của tôi là 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Vì bạn đã tạo một hình ảnh từ Dockerfile, nên hình ảnh hiện không ở trạng thái hoạt động. Để làm việc, bạn cần chạy hình ảnh này trong một thùng chứa.
Các $ docker images
lệnh mô tả bao nhiêu hình ảnh hiện đang có sẵn trong kho địa phương. và
docker ps -a
hiển thị có bao nhiêu container hiện đang có sẵn, tức là danh sách các container đang hoạt động và đã thoát.
Có hai cách để chạy hình ảnh trong container:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Trong chế độ tách ra:
-d=false: Detached mode: Run container in the background, print new container id
Trong chế độ tương tác:
-i :Keep STDIN open even if not attached
Đây là lệnh chạy Docker
$ docker run image_name:tag_name
Để làm rõ hơn về chạy Docker, bạn có thể truy cập tham chiếu chạy Docker .
Đó là tài liệu tốt nhất để hiểu Docker.
Để xem danh sách tất cả hình ảnh trên máy chủ Docker của bạn, hãy chạy:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Bây giờ bạn có thể chạy hình ảnh Docker dưới dạng một thùng chứa trong chế độ tương tác:
$ docker run -it apache_snapshot /bin/bash
HOẶC nếu bạn không có bất kỳ hình ảnh cục bộ nào, Tìm kiếm Docker Hub để tìm hình ảnh để tải xuống:
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian... 6759 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK]
rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK]
ubuntu-upstart Upstart is an even... 80 [OK]
Kéo hình ảnh Docker từ kho lưu trữ bằng lệnh kéo docker:
$ docker pull ubuntu
Chạy hình ảnh Docker như một container:
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
Đối với những người có cùng một vấn đề, nhưng gặp phải một lỗi như
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
Tôi đã thêm một điểm vào hoạt động cho tôi:
docker run -it --entrypoint /bin/sh
cho những hình ảnh không có Bash.
Ví dụ (từ ví dụ đã được phê duyệt):
run -it --entrypoint /bin/sh ubuntu:12.04
Tham khảo: https://gist.github.com/mitchwongho/11266726
docker ps -a
không hữu ích ở đây?