Volumen de datos de Dockfile y Docker

Uno, imagen de Docker

1.1, tres formas de construir un espejo

■ dockerfile
■ Crear imagen en función de contenedor de imagen existente
■ Construir sobre la base de la plantilla local,

1.2, la superposición de imágenes de la ventana acoplable

■ Cada instrucción en el Dockerfile creará una nueva capa de imagen
■ La capa de imagen se almacenará en caché y se reutilizará
■ Cuando se modifican las instrucciones del Dockerfile, el archivo copiado cambia, o la variable especificada al construir la imagen es diferente, la imagen correspondiente La caché de la capa se invalidará
■ Después de que falle una determinada capa de la caché reflejada, se invalidarán las cachés de la capa reflejada posterior.
■ La capa reflejada es inmutable. Si agrega un archivo a una capa y luego lo elimina en la siguiente, entonces El archivo seguirá incluido en la imagen.
Inserte la descripción de la imagen aquí

二 、 Dockerfire

2.1, instrucciones de funcionamiento de dockerfile

Inserte la descripción de la imagen aquí
Nota: la diferencia entre AGREGAR y COPIAR
● COPIAR: solo copiar
● AGREGAR: copiar, descomprimir y el objeto operable no es solo un archivo sino también una URL

Nota: La diferencia entre CMD y ENTRYPOINT
● CMD: El comando CMD lo personalizamos nosotros. Es un programa ejecutable cuando el contenedor se está ejecutando. Si hay varios comandos CMD en el dockerfile, solo el último tendrá efecto.
● ENTRYPOINT : se refiere al sistema que se está iniciando. El primer ejecutor que se ejecuta por defecto

2.2, use dockerfile para crear una imagen de apache

[root@docker opt]# mkdir apache
[root@docker opt]# cd apache/
[root@docker apache]# ls
[root@docker apache]# vim Dockerfile
FROM centos                #基于的基础镜像
MAINTAINER apache    #维护镜像的用户信息
RUN yum -y update   #镜像操作指令安装apache软件
RUN yum -y install httpd
EXPOSE 80                        #开启80端口
ADD index.html /var/www/html/index.html        #复制网站首页文件
ADD run.sh /run.sh                                               #将执行脚本复制到镜像中
RUN chmod 755 /run.sh
CMD ["/run.sh"]                #启动容器时执行脚本
[root@docker apache]# vim index.html
[root@docker apache]# vim run.sh
[root@docker apache]# cat index.html 
Hello world!
[root@docker apache]# cat run.sh 
#! /bin/bash
rm -rf /run/httpd/*           #删除apache缓存
exec /usr/sbin/apachectl -D FOREGROUND   #exec执行,apachectl -D守护
[root@docker apache]# docker build -t httpd:centos .  #生成镜像,.表示本地目录

Inserte la descripción de la imagen aquí

[root@docker apache]# docker run -d -p 1216:80 httpd:centos  # -p:表示指定的端口映射
   -P:表示随机映射的端口
[root@docker apache]# docker ps -a

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2.3. Crear una imagen basada en un contenedor de imágenes existente

[root@docker ~]# docker images
[root@docker ~]# docker run -itd nginx:latest /bin/bash
[root@docker ~]# docker ps -a

Inserte la descripción de la imagen aquí

En tercer lugar, el establecimiento de almacenes privados.

3.1, la diferencia entre registro y puerto

registro: interfaz de personaje
puerto: página web propia

3.2. Ejemplo

[root@docker ~]# docker pull registry

Inserte la descripción de la imagen aquí

[root@docker ~]# vim /etc/docker/daemon.json

Inserte la descripción de la imagen aquí

[root@docker ~]# systemctl restart docker
[root@docker ~]# docker create -it registry /bin/bash
[root@docker ~]# docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
#宿主机的/data/registry自动创建挂载容器中的/tmp/registry

Inserte la descripción de la imagen aquí

[root@docker ~]# curl -XGET http://192.168.140.20:5000/v2/_catalog
#获取私有仓库列表

Inserte la descripción de la imagen aquí

[root@docker ~]# docker tag nginx:latest 192.168.140.20:5000/nginx
#打标签

Inserte la descripción de la imagen aquí

[root@docker ~]# docker push 192.168.140.20:5000/nginx   #上传到仓库
[root@docker ~]# curl -XGET http://192.168.140.20:5000/v2/_catalog

Inserte la descripción de la imagen aquí

[root@docker ~]# docker images

Inserte la descripción de la imagen aquí

[root@docker ~]# docker pull 192.168.140.20:5000/nginx   #进行本地下载
[root@docker ~]# docker images

Inserte la descripción de la imagen aquí
Resumen: registro

  • tirar descarga
  • Primero cambie el archivo de configuración: daemon.json para conectarse al almacén privado
  • Ejecutar la operación del
    usuario de registro
  • Etiqueta
  • carga de empuje
  • jalar

Cuatro, volumen de datos de la ventana acoplable y contenedor de volumen de datos

4.1, volumen de datos de la ventana acoplable

■ 数据卷是一个提供容器使用的特殊目录
■ 数据卷是宿主机和容器间目录的挂载
■ 创建数据卷
docker run -d -v /data1 -v /data2 --name webhttpd:centos
■ 挂载主机目录作为数据卷
docker run -d -v /var/www:/data1 --name web-1httpd:centos
 -v表示将宿主机的目录和容器的目录实现共享
[root@docker ~]# docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash
[root@1c13c7f2d3be /]# cd /data1/
[root@1c13c7f2d3be data1]# touch test1
[root@1c13c7f2d3be data1]# ll

Inserte la descripción de la imagen aquí

[root@docker ~]# cd /var/   #另起一个窗口进行验证
[root@docker var]# cd www
[root@docker www]# ll

Inserte la descripción de la imagen aquí

4.2, contenedor de volumen de datos

■ 数据卷容器是一个容器中的目录和另一个容器中的目录进行挂载
[root@docker ~]# docker run --name web10 -v /data1 -v /data2 -it centos:7 /bin/bash
另起窗口进行验证
[root@docker ~]# docker run -it --volumes-from web10 --name dc1 centos:7 /bin/bash
[root@f9d06e0697f8 /]# cd data1/
[root@f9d06e0697f8 data1]# touch 1.txt
[root@f9d06e0697f8 data1]# cd ..
[root@f9d06e0697f8 /]# cd data2/
[root@f9d06e0697f8 data2]# touch 2.txt

Inserte la descripción de la imagen aquí

Cinco, interconexión de contenedores (usando centos mirroring)

[root@docker ~]# docker run -itd -P --name b1 centos:7 /bin/bash
c927e250afc9cbea2a2d80719a5ddce28ae4b762a62ab39b3c2cbbbce76c5e22   #创建并运行容器取名b1,端口号自动映射
[root@docker ~]# docker exec -it c927e250afc9 /bin/bash
[root@c927e250afc9 /]# yum -y install net-tools
[root@docker ~]# docker run -itd -P --name b2 --link b1:b1 centos:7 /bin/bash 
a8fb67c2c153ecefad53b3a284a1b11715c074a29109f2c03fa2ae29db6d860b
[root@docker ~]# docker exec -it a8fb67c2c153 /bin/bash
[root@a8fb67c2c153 /]# yum -y install net-tools
[root@c927e250afc9 /]# ifconfig
[root@a8fb67c2c153 /]# ifconfig

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

[root@a8fb67c2c153 /]# ping 172.17.0.3    

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_50344814/article/details/114678952
Recomendado
Clasificación