卷挂载
创建数据卷:
卷挂载:(具名挂载)
卷挂载(匿名挂载):
查看卷保存地址:
停止删除容器,并删除数据卷:
docker attach
docker attach命令进入到正在运行的 Docker容器后,如果使用 exit 命令或者 Ctrl+d 退出容器后,原来正在运行的容器也会停止。
docker attach命令进入到正在运行的 Docker容器后,如果使用 Ctrl+p+q 退出容器后,原来正在运行的容器不会停止。
docker cp
在宿主机中运行,将宿主机上的文件拷贝到容器的相应路径上
docker build构建镜像
Dockerfile是由一系列指令和参数构成的脚本,每一条指令构建一层,因此每一条指令的内容就是描述该层应当如何构建,一个Dockerfile包含了构建镜像的完整指令。
dockerfile的构建过程:
1、编写dockerFile文件
2、docker build构建镜像
3、docker run
Docker file指令:
FROM 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER 镜像维护者的姓名混合邮箱地址
RUN 容器构建时需要运行的命令
EXPOSE 当前容器对外保留出的端口
WORKDIR 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV 用来在构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY 类似ADD,拷贝文件和目录到镜像中!
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最 后一个生效!
ENTRYPOINT 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的 ONBUILD被触发
CMD与ENTRYPOINT区别
CMD用于指定在容器启动后所执行的命令或者作为ENTRYPOINYT的参数。
ENTRYPOINT用于给容器配置一个可执行程序,也就是每次使用镜像创建容器时,通过ENTRYPOINT指定的程序都会被设置为默认程序。
ps:
1.docker run 命令会覆盖 Dockerfile 中的 CMD 命令
1.通过docker run执行的命令不会覆盖 ENTRYPOINT
2.docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT
3.Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。
构建实验
编写Dockerfile文件
创建基于centos的容器: