docker学习笔记(四): 镜像和仓库

镜像docker构建有两种方法:

  •   使用docker commit命令

  •  使用docker buil命令和Dockerfile文件

commit创建镜像:

1、     在Docker Hub上注册账号,完成邮箱验证,然后在系统中使用命令登录,命令如下:

sudo docker login

2、     先创建一个容器:

sudo docker run –i –t ubuntu /bin/bash

 

3、     修改source.list 文件:将宿主机的拷贝过来即可,然后执行命令:

apt-get update

4、     安装apache2:

apt-get –y install apache2

 

5、     安装完成之后,使用exit退出,运行commit命令,提交镜像

sudo docker commit ID docker/apache2

6、     使用命令查看:

sudo docker images docker/apache2

7、     在提交时添加更多描述

sudo docker commit -m="custom image" --author="madong" 5b088e8b7b26 docker/apache2:webserver

webserver 为镜像标签

8、     查看新创建镜像详细信息

sudo docker inspect docker/apache2:webserver

 

9、     运行提交的容器

sudo docker run –t –i docker/apache2:webserver /bin/bash

Dockerfile构建镜像

touch Dockerfile

Dockerfile文件如下:

FROM指令指定一个存在的镜像,后续指令都将基于该镜像执行,成为基础镜像。每一个Dockerfile第一条指令都应该是FROM

MAINTAINER 指令会告诉Docker该镜像的作者,已经作者的email

RUN指令会在当前镜像中运行指定的命令,默认情况下,RUN指令会在shell里使用命令包装器 /bin/sh –c来执行,如果不需要再shell中执行,也可以

RUN ["apt-get”,”install”,”-y”,”nginx”]

EXPOSE指令表示向外部公开多个端口

执行build命令构建镜像

docker build –t=”docker/nginx:web” .

 

web为指定标签,如果没有指定,docker将会自动为镜像设置一个latest标签

docker每一步的构建过程都会将结果提交为镜像,但是有时候不需要使用缓存,则命令为:

docker build –no-cache –t=”docker/nginx:web” .

运行镜像,命令:

sudo docker run -d -p 80 --name static_web docker/nginx:web nginx -g "daemon off;"

-p 宿主机将随机一个端口好映射到容器80端口上

可以通过命令查看

sudo docker ps -l

 

你可能感兴趣的:(docker学习笔记(四): 镜像和仓库)