# 容器数据持久化
# 将容器内index.html 目录映射到主机目录,容器删除之后,index.html还在,使用docker命令后,数据恢复
mkdir /opt/chijiu
docker run -d --name web -p 8080:80 -v /opt/chijiu/:/usr/share/nginx/html nginx
echo "<h1> hello world </hq>" >/opt/chijiu/index.html
# 容器网络
- veth pair:成对出现的一种虚拟网络设备,数据从一端进,从另一端出。 用于解决网络命名空间之间隔离。
- docker0:网桥是一个二层网络设备,通过网桥可以将Linux支持 的不同的端口连接起来,并实现类似交换机那样的多对多的通信。
docker0 负责连通容器和宿主机的访问关系,容器和容器通过docker0连通,从而保证网络的通畅以及外部网络的访问
# dockerfile
Docker通过Dockerfile自动构建镜像,Dockerfile是一个包含用于组建镜像的文本文件,由一条一条的指令组成。
指令 | 描述 |
FROM | 构建镜像是基于哪个镜像 |
LABEL | 标签 |
RUN | 构建镜像时运行的Shell命令 |
COPY | 拷贝文件或目录到镜像中 |
ADD | 解压压缩包并拷贝 |
ENV | 设置环境变量 |
USER | 为RUN、CMD和ENTRYPOINT执行命令指定运行用户 |
EXPOSE | 声明容器运行的服务端口 |
WORKDIR | 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录 |
CMD | 运行容器时默认执行,如果有多个CMD指令,最后一个生效 |
构建nginx镜像
vim /data/dockerfile
FROM centos:7
LABEL maintainer www.ctnrs.com
RUN yum -y install epel-release && yum install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
docker build -t nginx:v1 /data
docker run -d --name web -p 8080:80 -v /opt/chijiu/:/usr/share/nginx/html nginx:v1