docker进阶
docker file
docker file作用:将部署流程封装到文件中
执行dockerfile
注意,此教程中桥接模式下无法连外网,共享模式下可以连外网,教程中更改共享模式无法上外网,执行下面操作
还是连不上网,重启一下
执行docker file
这个镜像可以直接进行安装软件的操作
dockerfile的方式为自动化运维,把所有部署逻辑进行封装
回顾
docker是一个容器,需要什么样的容器就安装什么样的容器
add和copy属性的回顾
添加的不是data目录本身,而是data下的文件
可以将data目录添加到home下面
将data下面的文件添加到home下
将data文件夹添加到home下
上传到整个压缩包到 home下
将上传data目录到home(进行解压)
有些需要直接上传压缩包的不适合用这个命令,比如fastdfs的安装包
run和env的使用
在执行 apt-get update 在下载资源的时候,如果不想等了,可以ctrl+c退出
一行写两条指令
dockerfile 如果指令有错的话会给出提示
指定环境变量
shell变量
容器中获取环境变量值
linux的系统变量
workdir
部署的时候可以使用这个命令进入项目目录,来启动项目
如果切换的目录不存在,会创建出一个目录
expose和entrypoint
表明开启的进程对于 任意ip,8000端口的报文都可以正常的响应
运行容器,开放外部接口
查看网络映射
docker部署流程
当访问到容器内的8000端口,将会把报文转给通过下面指令开启的进程
步骤:
-
启动运行基本系统镜像(系统可以自己进行选择)
-
安装环境,首先进行更新
-
安装python3-pip -y 参数可以提示yes或no
-
添加requires.txt 项目依赖包
-
导入项目依赖包 ,需要添加-r参数
-
导入美多的项目文件,并进入项目
-
uwsgi对外开放的8001 端口 ,指定对外开放端口,并运行项目
-
新建目录,复制dockerfile的文件内容到此目录下的DockerFile
-
准备文件,保证脚本不要出错
-
修改配置文件
-
做镜像
使用配置好环境的镜像
启动镜像- 查看uwsgi运行情况
启动nginx
查看日志- 至此,已经可以访问后端服务了,但是数据库啥的还没有绑定
共享网络的说明
进入容器
-
查看进程以及mysql
-
停止容器
以下完成容器内调用宿主机的服务
- 容器和宿主机共享网络,如果不加的话,宿主机和容器就处于相对封闭的网络
这样就能访问宿主机的网络了
docker Compose 可以生成多个镜像,也可以自动执行运行镜像的操作