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
用放荡不羁的心态过随遇而安的生活