文章目录
1.dockerfile常用命令
1)FROM:指定base镜像,如果本地不存在会从远程仓库下载。
2)MAINTAINER:镜像作者,写入邮箱就可以了。
3)COPY:
1.1 COPY拷贝一个文件
1)构建一个dockerfile:将目录下的testfile拷贝到镜像中的/tmp目录下以原名命名。
[root@docker dockerfile]# vim dockerfile
FROM busybox
COPY testfile /tmp
2)在构建目录中建立testfile:
[root@docker dockerfile]# echo copytest > testfile
[root@docker dockerfile]# ll
total 8
-rw-r--r-- 1 root root 32 Sep 7 14:23 dockerfile
-rw-r--r-- 1 root root 9 Sep 7 14:25 testfile
3)构建镜像:
[root@docker dockerfile]# docker build -t song:v3 .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM busybox
---> edabd795951a
Step 2/2 : COPY testfile /tmp
---> dafd703a5ab5
Successfully built dafd703a5ab5
Successfully tagged song:v3
4)使用新建镜像创建容器查看:文件已经在镜像中了
[root@docker dockerfile]# docker run -it --name copytest song:v3
/ # ls
bin dev etc home proc root sys tmp usr var
/ # cd tmp/
/tmp # ls
testfile
/tmp # cat testfile
copytest
1.2 ADD
ADD与拷贝指令是一样的,但是ADD的功能更强,ADD可以解压压缩包,如果镜像中没有带解压命令就可以使用ADD。ADD是在拷贝到容器内之前就已经解压了。
ADD后面还可以接URL,也就是说包不一定需要在本地,也可以是在网络上的。
1)给构建目录下下载一个nginx的包:
[root@docker dockerfile]# ls
dockerfile nginx-1.15.9.tar.gz testfile
2)编写dockerfile:将nginx压缩包解压拷贝到/tmp下。
[root@docker dockerfile]# vim dockerfile
FROM busybox
COPY testfile /tmp
ADD nginx-1.15.9.tar.gz /tmp
3)构建镜像:
[root@docker dockerfile]# docker build -t song:v4 .
Sending build context to Docker daemon 1.036MB
Step 1/3 : FROM busybox
--