Dockfile命令

官方文档:https://docs.docker.com/get-started/
https://blog.csdn.net/sch0120/article/details/53219362
exec 进入容器

创建Docker镜像

  1. 方式一:docker commit (在别的容器基础上做修改,然后commit创建新镜像)
1.进入想要使用的容器,比如我们使用ubuntu15.10举例:
#启动容器
docker run -itd  ubuntu:15.10 /bin/bash 
#查看该容器id
docker ps 
docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d2d05fc815e8        ubuntu:15.10        "/bin/bash"         11 seconds ago      Up 11 seconds                           compassionate_williams

# 进入该容器,完成你想做的修改
 docker exec -it d2d05fc815e8 /bin/bash 
#以修改过的容器为基础创建出镜像
ocker commit -m="测试创建镜像" -a="sky" 529b7923f2e8  sky/myubuntu:1.0
#成功后输出
sha256:52b6979aeb5f83f8c0a346385f92f33077435f3e7407a6a7c241df0831653e53

参数:
-m 注释信息(message),类似git提交是填写注释信息
-a 作者(author)
529b7923f2e8   容器id, 注意是容器id,不是镜像id
sky/myubuntu  仓库名,一般以  作者或公司组织名等/镜像名  命名
1.0 Tag 信息, 如果不写则为latest
  1. 方式二:使用Dockerfile

将需要对镜像进行的操作全部写到一个文件中,然后使用docker build命令从这个文件中创建镜像。类似于使用MAVEN 的pom.xml对项目依赖进行管理. 这种方法可以使镜像的创建变得透明和独立化,并且创建过程可以被重复执行。
Dockerfile文件以行为单位,行首为Dockerfile命令,命令都是大写形式,其后紧跟着的是命令的参数。
步骤:

  1. 创建一个dockerfile文件
touch  dockerfile  # 创建一个dockerfile 文件
vi dockerfile #编辑dockerfile , 在其中写入下列代码
  1. 编辑dockerfile , 在其中写入下列代码(本代码纯粹为了练习可以使用的命令,没有其他意义)
#Version 1.0.1
FROM centos:latest

MAINTAINER ***u "***[email protected]"

#设置root用户为后续命令的执行者
USER root

#执行操作
RUN yum update -y
RUN yum install -y java

#使用&&拼接命令
RUN touch test.txt && echo "abc" >>abc.txt

#对外暴露端口
EXPOSE 80 8080 1038

#添加文件
ADD abc.txt /opt/

#添加文件夹
ADD /webapp /opt/webapp

#添加网络文件
ADD https://www.baidu.com/img/bd_logo1.png /opt/

#设置环境变量
ENV WEBAPP_PORT=9090

#设置工作目录
WORKDIR /opt/

#设置启动命令
ENTRYPOINT ["ls"]

#设置启动参数
CMD ["-a", "-l"]

#设置卷
VOLUME ["/data", "/var/www"]

#设置子镜像的触发操作
ONBUILD ADD . /app/src
ONBUILD RUN echo "on build excuted" >> onbuild.txt
  1. 构建镜像

docker build -t sky/test:v1  .   # sky/test 仓库名 ,  v1 Tag(镜像版本信息) ,  " . " 指明镜像存储目录,"."代表当前目录
#等待----> 如果没有问题会出现successfully build xxxx(镜像id)信息
docker images # 检查创建出的镜像信息,创建完成!

你可能感兴趣的:(Dockfile命令)