I built a docker image from a dockerfile. I see the image was built successfully, but what do I do with it? Shouldn't it be able to run as a container?
New to docker so probably a misunderstanding on my end, any help would be great.
The specific way to run it depends on whether you gave the image a tag/name or not.
$ docker images
root@dockertest:~# docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
With a name (let's use ubuntu):
$ docker run -i -t ubuntu:12.04 /bin/bash
Without a name, just using the ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Please see https://docs.docker.com/engine/reference/run/ for more information.
Do following steps :
$ docker images
you will get list of all local docker images with tags specified.
$ docker run image_name:tag_name
If you didn't specify
tag_name
it will automatically run image with 'latest' tag.Instead of
image_name
you can also specify Image Id (no tag_name).
- To list the docker images
$ docker images
- If your application wants to run in with port 80 and you can expose a different port to bind locally say 8080
$ docker run -d --restart=always -p 8080:80 image_name:version
You can see your availables images using
docker images
Then you can run in detached mode so your terminal is still usable, you have severals option to run it using repository name ( with or without tag ) or image id
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Then you can check your container is running using
docker ps
docker ps give you a container id, you can use it or just the 2/3 firsts character to go into your container using
docker exec -it container_id /bin/bash
and you can stop it using docker stop container_id
and docker rm container_id
You can also run your container with -rm
arguments so if you stop your container it will be automatically removed.
Get the name or id of the image you would like to run, with this command: docker images
The docker run command is used in the following way:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Below I have included the dispatch, name, publish, volume and restart options before specifying the image name or id:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
--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
For more information please check out the official docker run reference
Here is an example to run a webdev service in docker.
The image's name is morrisjobke/webdav. You can pull it from dockerhub.
After you run this images,you can then access the WebDAV instance at http://localhost:8888/webdav
. Internally the folder /var/webdav
is used as WebDAV root.
You can run this container in following way:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
I had the same problem. I ran my docker and it created a container with a specific CONTAINER_ID and I wanted to work with the same container:
first run your docker:
$docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Then list all container you have made:
$sudo docker ps -a
and select the container you want to work with (mine is 167ddd6d7f15)
$sudo docker start -ai 167ddd6d7f15
Since you have created an image from the docker-file,the image currently is not in active state. In order to work you need to run this image inside a container.
$ docker images
command describes how many images are currently available in the local repository.
and
docker ps -a
shows how many containers are currently available i.e list of active and exited container
There are two ways to run the image in the container
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
in detached mode
-d=false: Detached mode: Run container in the background, print new container id
in interactive mode
-i :Keep STDIN open even if not attached
Here is the docker run command
$ docker run image_name:tag_name
for more clarification on docker run you can visit https://docs.docker.com/engine/reference/run/
it's the best material to understand docker.
来源:https://stackoverflow.com/questions/18497688/run-a-docker-image-as-a-container