ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dockerfile

2022-01-05 17:03:39  阅读:144  来源: 互联网

标签:network Dockerfile nginx root docker dockerfile localhost


1、复习

 11、linux网络
2
3    为了网络协议栈的多实例,linux提供了一个名称空间(包含网络名称空间),每一个名称空间相互隔离,彼此之间网络不互通。
4
52、docker网络
6
7    docker网络依赖于linux网络。
8
9    1、veth设备对
10    2、iptables 
11    3、ipvs
12    4、网桥
13
14    -p
15    -P
16
173、docker network
18
19    1、host模式
20    2、container模式
21        2.1、--link
22    3、none模式
23    4、网桥
24
25    --network
26
27    docker network create
28    docker network ls
29    docker network inspect 
30    docker network connect
31    docker network disconnect
32    docker network rm 
33    docker network prune 

2、内容概要

11、Dockerfile
22、利用dockerfile构建 Nginx + Django
3
4docker-compose单机编排工具
5harbor 私有仓库
6
7Nginx + Django + MySQL

3、Dockerfile

 1Dockerfile可以构建容器。
2
3通过指令
4
51、指令
6    1、依赖基础镜像的指令,必须在Dockerfile的顶端
7    FROM    
8
9    2、执行命令的指令(RUN指令执行的命令,必须是基础容器中支持的命令),将执行的结果保存到镜像中
10    RUN 
11
12    3、添加文件到镜像
13    ADD
14
15    注:
16        1、ADD支持解压功能(仅支持tar解压)
17        2、支持远程下载功能,但是如果是远程下载的文件,则不解压
18
19    4、复制文件到镜像
20    COPY
21
22    5、暴露端口
23    EXPOSET
24
25        80 443
26        80/tcp 443/udp
27    6、工作目录
28    WORKDIR
29
30    7、设置容器启动时执行的命令
31    CMD 
32
33FROM python:3.6
34RUN pip install django
35ADD linux.tar.gz /opt
36EXPOSE 80
37WORKDIR /opt/linux
38CMD python manage.py runserver 0.0.0.0:80
39
40    8、定义Dockerfile变量的指令
41    ARG
42
43    9、触发器指令(构建时不作任何操作,但是在作为基础镜像时触发)
44    ONBUILD
45
462、构建镜像的命令
47    docker build -t [镜像名称] [Dockerfile的路径]
48
49注:
50    1、Dockerfile的文件名
51    2、一旦开始构建容器,当前目录会被虚拟到Docker容器中

4、利用dockerfile构建 Nginx + Django

 1# 创建网桥
2docker network create lhs
3
41、Django
5mkdir django
6django-admin startproject linux
7django-admin startapp app01
8数据库迁移
9[root@localhost django]# vim Dockerfile 
10FROM python:3.6
11ADD linux.tar.gz /opt
12EXPOSE 80
13WORKDIR /opt/linux
14RUN pip install django
15CMD python manage.py runserver 0.0.0.0:80
16
17# 创建
18[root@localhost django]# docker build -t django:v1 .
19# 创建容器
20[root@localhost django]# docker run -d --name django --network lhs django:v1
21
22
23
24
252、Nginx
26mkdir nginx
27[root@localhost nginx]# vim Dockerfile 
28FROM nginx
29ADD default.conf /etc/nginx/conf.d/
30EXPOSE 80
31CMD nginx -g 'daemon off;'  # 前台运行nginx
32
33[root@localhost nginx]# vim default.conf 
34server {
35    server_name _;
36    listen 80;
37    location / {
38        proxy_pass http://django;
39    }
40}
41
42[root@localhost nginx]# docker build -t nginx:v1 .
43[root@localhost nginx]# docker run -d --name nginx -P --network lhs nginx:v1
44会随机暴露一个接口映射django

5、容器化BBS

 11、mysql
2
3    docker run -d --name mysql --network chenyang1 -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
4
52、bbs
6
7    1、Dockerfile
8    [root@localhost bbs]# cat bbs/Dockerfile 
9    FROM python:3.6
10    ADD ./ /opt/
11    WORKDIR /opt 
12    RUN pip install -Ur requirements.txt
13    EXPOSE 80
14    CMD python manage.py runserver 0.0.0.0:80
15
16    2、数据迁移
17
183、nginx
19[root@localhost nginx]# cat Dockerfile 
20FROM nginx
21ADD default.conf /etc/nginx/conf.d/
22EXPOSE 80
23CMD nginx -g 'daemon off;'
24
25[root@localhost nginx]# cat default.conf 
26server {
27    server_name _;
28    listen 80;
29    location / {
30        proxy_pass http://bbs;
31    }
32}

标签:network,Dockerfile,nginx,root,docker,dockerfile,localhost
来源: https://www.cnblogs.com/long4275/p/15767773.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有