![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/598ded28bdd5644ff89d6433790b9f9b.png)
一、Docker镜像的创建:
- Docker镜像:
应用发布的标准格式
支撑一个Docker容器的运行 - Docker镜像的创建方法:
基于已有镜像创建
基于本地模板创建
基于Dockerfile创建 - Dockerfile是由一组指令组成的文件
- Dockerfile结构分四部分:
基础镜像信息
维护者信息
镜像操作指令
容器启动时执行指令 - Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#"“号开头的注释
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ac604f465ef6183ab7dba9e388c06afa.png)
二、Docker的数据管理
- 数据管理操作
方便查看容器内产生的数据
多容器间实现数据共享 - 两种管理方式
数据卷
数据卷容器
三、代码实现:
1、基于已有的镜像容器创建:
docker create -it centos:7 /bin/bash
docker commit -m "new" -a "zk" 07f442088c27 zk:test
2、基于本地模板创建:
将debian的包拖到/opt/下:
cat debian-7.0-x86-minimal.tar.gz | docker import - zk:new
3、Dockerfile文件的创建:
vim Dockerfile
FROM centos:7
MAINTAINER The is ky03
RUN yum -y update
RUN yum -y install httpd
EXPOSE 80
ADD index.html /var/www/html/index.html
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
vim index.html
<h1>this is ky03 web</h1>
vim run.sh
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
docker build -t httpd:centos .
docker run -d -p 1216:80 httpd:centos
在宿主机上访问宿主机的IP地址:8080
4、docker 数据卷:(容器与宿主机之间的共享)
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash
5、docker 数据卷容器:(容器与容器之间关联)
docker run --name web100 -v /data1 -v /data2 -it centos:7 /bin/bash
docker run -it --volumes-from web100 --name web99 centos:7 /bin/bash
6、私有仓库:
docker pull registry
vim /etc/docker/daemon.json
"insecure-registries":["14.0.0.10:5000"],
systemctl restart docker
docker create -it registry /bin/bash
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
docker tag nginx:latest 14.0.0.10:5000/nginx 标记
docker push 14.0.0.10:5000/nginx 上传
curl -XGET http://14.0.0.10:5000/v2/_catalog 查看列表
docker pull 14.0.0.10:5000/nginx 下载
7、端口映射:
docker run -d -P 14.0.0.10:5000/nginx(P:随机;p:固定)
docker run -d -p 49280:80 httpd/nginx
docker ps -a 查看容器端口状况
8、容器互联:
docker run -itd -P --name web11 centos:7
docker run -itd -P --name web22 --link web11:web11 centos:7 /bin/bash