sudo docker images
sudo docker pull ubuntu:12.04
可能出现仓库无法响应的问题,使用国内的Docker仓库daocloud:
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"" | sudo tee -a /etc/default/docker
重启一下docker服务器
sudo service docker restart
sudo docker run --name container_name -i -t ubuntu:12.04 /bin/bash
sudo docker search image_name
返回以下信息:
仓库名
镜像描述
用户评价(Stars)
是否官方(Official)
自动构建(Automated)
登陆到Docker Hub:
sudo docker login
然后输入用户名(czzmm)和密码。
sudo docker commit bd46737e3ad0 czzmm/demo01
其中,bd46737e3ad0可以是ID或者container_name,czzmm是Docker Hub用户名,demo01是新的镜像名。
sudo docker commit -m"A new custom image" -a"cz" cz czzmm/demo02:webserver
-m提交信息,-a作者信息,webserver是标签。
sudo docker images czzmm/demo01
sudo docker inspect czzmm/demo02:webserver
sudo docker run -t -i czzmm/demo02:webserver /bin/bash
不推荐使用docker commit命令来构建镜像,通过Dockerfile文件和docker build命令更具可重复性、透明性和幂等性。
新建一个目录,并在该目录下新建一个 Dockerfile 文件:
FROM ubuntu:14.04
MAINTAINER CZ "[email protected]"
RUN apt-get update -yqq && apt-get install -y nginu
RUN echo ‘Hi, I am in your container’ > /usr/share/nginx/html/index.html
EXPOSE 80
EXPOSE指定对外部公开的端口。
使用docker build命令构建镜像。
sudo docker build -t="czzmm/static_web" .
查看新的Docker镜像
sudo docker images czzmm/static_web
查看镜像是如何构建的:
sudo docker history czzmm/static_web
sudo docker run -d -p 80 --name static_web czzmm/static_web nginx -g "daemon off;"
-d:Docker以分离的方式在后台运行,这种方式非常适合运行类似Nginx守护进程这样需要长时间运行的进程。
-p:公开的的网络端口。
上面的命令中还指定了需要在容器中运行的命令:nginx -g “daemon off;”
绑定到特定的网络接口:
sudo docker run -d -p 127.0.0.1::80 --name static_web czzmm/static_web nginx -g "daemon off;"
查看容器的端口映射情况:
sudo docker port static_web 80
或者:
sudo docker ps -l
sudo docker push czzmm/static_web
sudo docker rmi czzmm/static_web