Dockerfile 创建

2020/11/11 14:05
阅读数 21

Dockerfile 创建

                        #Dockerfile 创建

#删除批量删除none镜像
vim none.sh
docker ps -a | grep "Exited"|awk '{print $1}'|xargs docker stop
docker ps -a | grep "Exited"|awk '{print $1}'|xargs docker rm
docker images| grep none|awk '{print $3}'|xargs docker rmi

#一: -----------------------------创建镜像的三种方式
#####创建镜像的三种方式
##1.Dockerfile
mkdir apache && cd apache

cat > Dockerfile <<-'EOF'
#1.基于的基础镜像
FROM centos:7
#2.维护镜像的用户信息
MAINTAINER this is kgc
#3.更新yum源,安装httpd
RUN yum -y update           "新容器,使用yum的时候要提前更新yum源"
RUN yum install -y httpd
#4.暴露容器内部端口
EXPOSE 80
#5.复制网站首页文件
ADD index.html /var/www/html/index.html
#6.将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
#7.启动容器时执行的脚本
CMD ["/run.sh"]
EOF

##生成镜像 "末尾.一定要有"
docker build -t httpd:centos .
##新镜像运行容器
docker run -d -p 8081:80 httpd:centos
##
echo "web test" > index.html 

tee run.sh <<EOF
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
EOF

##测试
http://192.168.100.200:8081

##2.基于已有的容器创建镜像
docker create -it centos:7 /bin/bash
docker ps
5e2e8a827d0d        httpd:centos        "/run.sh"                9 hours ago         Up 6 minutes        0.0.0.0:8081->80/tcp     dreamy_knuth
docker commit -m "ceshi" -a "li" 5e2e8a827d0d  tang:centos 
'//-m:说明文字,-a:提交的作者'

##3. 基于本地模板创建镜像
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
ls
    debian-7.0-x86-minimal.tar.gz 
cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new
docker images
    daoke                        new                 48335eb7b82d        13 seconds ago      215MB

#二: ------------------------------私有仓库建立

##1.获取registory镜像,构建仓库容器
docker pull registry  "每个私有仓库都要用这个镜像"
vim /etc/docker/daemon.json
"insecure-registries":["192.168.100.200:5000"],
systemctl restart docker.service

###2.宿主机的/data/registory 自动创建挂载容器中的/tmp/registory
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
###3.更改标记为192.168.100.150:5000/nginx
docker tag nginx:latest 192.168.100.200:5000/nginx
###4.上传镜像到私有仓库
docker push 192.168.100.200:5000/nginx
###5.获取私有仓库列表
curl -XGET http://192.168.100.200:5000/v2/_catalog

###6.显示上传成功
    {"repositories":["nginx"]}
###7.测试私有仓库下载

docker pull 192.168.100.200:5000/nginx

#三: ---------------------------------------数据卷管理

#1.-----------Docker数据卷(宿主机与容器间)
docker pull centos
##宿主目录/var/www挂载容器中的/data1
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash
##容器内创建数据测试
cd /data1/
touch test123
##返回宿主机进行查看
ls /var/www/

#2.------------数据卷容器(容器间)
##数据卷容器
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    "web99容器名称"
##在两个目录下创建文件,测试

#--------------端口映射
docker run -d -P httpd:centos
docker run -d -P 49280:80 httpd:centos
docker ps -a

#3. -----------容器互联(使用centos镜像)
#####创建并运行容器取名web1,端口号自动映射
docker run -itd -P --name web11 centos:7 /bin/bash
#####创建并运行容器取名web12 ,连接到web1和其通讯
docker run -itd -P --name web12 --link web11:web11 centos:7 /bin/bash
#####进入web12容器 
ping web11
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部