Docke镜像和仓库基础命令

Docke镜像和仓库基础命令

1 列出Docker主机上可用的镜像

sudo docker images

2 拉取ubuntu镜像

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

3 运行一个带标签的docker镜像

sudo docker run --name container_name -i -t ubuntu:12.04 /bin/bash

4 查找docker镜像

sudo docker search image_name

返回以下信息:

  • 仓库名

  • 镜像描述

  • 用户评价(Stars)

  • 是否官方(Official)

  • 自动构建(Automated)

5 构造镜像的两种方式

  • 使用Docker commit命令。
  • 使用Docker build命令和Dockerfile文件。

登陆到Docker Hub:

sudo docker login

然后输入用户名(czzmm)和密码。

6 提交定制容器

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是标签。

7 检查新创建的镜像

sudo docker images czzmm/demo01

8 查看提交镜像的详细信息

sudo docker inspect czzmm/demo02:webserver

9 从提交的镜像运行一个容器

sudo docker run -t -i czzmm/demo02:webserver /bin/bash

10 用Dockerfile文件构建镜像

不推荐使用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

11 从新镜像启动一个容器

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

12 推送Docker镜像

sudo docker push czzmm/static_web

13 删除Docker镜像

sudo docker rmi czzmm/static_web

你可能感兴趣的:(Docker)