使用镜像和仓库
镜像基本操作:
查看镜像 docker images
查找镜像 docker search XXXX
拉取镜像 docker pull XXXX
删除镜像 docker rmi XXXX
构建镜像
两种方式 docker commit 和 docker build(Dockerfile文件)
Dockerfile文件方式相当于批量执行commit
Dockerfile构建镜像每一步的构建构成都会将结果提交到镜像中。
构建方法: docker build -t="myfirstdocker:v1.0" .
指令:
1.CMD:用于指定一个容器启动时要运行的命令。
docker run -i -t ubuntu /bin/bash 等同于 CMD ["/bin/bash"]
运行的命令放到数组中,命令按顺序执行
2.ENTRYPOINT:与CMD相似,只是该命令不能通过docker run参数覆盖ENTRYPOINT指令
3.WORKDIR:新创建容器的时候,创建工作文件夹,并且CMD和ENTRYPOINT会在该目录下执行指令
4.ENV:设置环境变量,比如设置JAVA_HOME等。 ENV JAVA_HOME /usr/local/jdk1.8
5.USER:指定该镜像使用什么用户启动容器。 USER es
6.VOLUME:
7.ADD:将build上下文路径里的文件复制到新构建的镜像里面。(ADD jdk-11.0.9_linux-x64_bin.tar.gz /root/guanhao/)
目录以/结尾,不是“/”结尾的均为文件。压缩包默认会解压后放到目标文件中。
所谓的 build 上下文就是 docker build 命令的 PATH 或 URL 指定的路径中的文件的集合。
在镜像 build 过程中可以引用上下文中的任何文件,比如我们要介绍的 COPY 和 ADD 命令,就可以引用上下文中的文件。
默认情况下 docker build -t testx . 命令中的 . 表示 build 上下文为当前目录。当然我们可以指定一个目录作为上下文,比如下面的命令:
$ docker build -t testx /home/nick/hc
ADD命令不能拷贝上下文以外路径的文件。
8.COPY:与ADD类似,不同之处:COPY不进行解压。
9.ONBUILD:
推送镜像
推送镜像到docker Hub: docker push my, 默认会推送到root存储空间,无权限。需要修改repository到自己的账号下。(dockerHub账号ID)
docker push ********/my ,由于本地没有*******/my镜像,所以需要通过tag命令重新打包。 docker tag my ********/my 。打包后,直接推送OK。