如何安装docker
1、 如何部署
2、 如何运行
自动生成环境文件
pip freeze > requirements.txt
切换到要创建镜像的文件夹,新建一个文件叫Dockerfile【注意最后面有个点,表示当前】
docker build -t 镜像名 .
创建容器
格式:docker run -dit --name=容器名 镜像 id /bin/bash
查看所有的容器
docker ps -a
进入容器
格式:docker exec -it 容器id /bin/bash
将文件夹挂载到容器中并且运行python文件
docker run -v D:/dockerfiles/pingfenqi-docker:/usr/src/myapp -w /usr/src/myapp python:3.6 python test.py
打包当前目录
Docker build .
启动容器
docker run -t -i pingfenqi /bin/bash
启动Docker容器
执行docker run命令启动构建的镜像:
sudo docker run –rm -d -p 8002:8000 -v /var/log/toolbox:/opt/toolbox/log –name toolbox_server –restart=always automation/toolbox
上面这个命令的解释如下:
1、 –rm 表示每次启动容器时,删除旧的容器
2、-d 表示后台启动容器
3、-p 8002:8000 表示将Docker主机的8002端口与容器的8000接口绑定,这样访问Docker主机的8002端口时就相当于访问了容器内的8000端口。而容器内的8000端口正好是Flask应用提供的端口。
4、-v 表示将Docker主机的/var/log/toolbox目录与容器内的/opt/toolbox/log目录做映射。这样Flask应用在容器内产生的log文件就可以在主机的/var/log/toolbox目录里面直接读取了。
5、–name 选项给启动的容器起了一个名字
6、–restart=always表示当容器中的Flask应用停止或者崩溃时,要重新启动Docker容器
6、automation/toolbox是镜像的名字。
构建容器【最后一个参数是镜像名】
docker run -d -p 6000:6000 pingfenqi
打包镜像为tar
docker save -o 要保存的文件名 要保存的镜像
docker save -o pingfenqi.tar pingfenqi
导入文件为镜像
docker load --input ./cc.tar
docker load < cc.tar
替换容器中的文件,避免重新编译。替换成功后,重新启动下镜像,更新的内容就生效了。
sudo docker cp /home/ubuntu/originblog-master/app/ 你的容器ID:/usr/src
将容器中的文件拷贝出来
docker cp a048ec6c707e:/app/ApiService.py /usr/local/projects/pingfen/articles/
docker cp /usr/local/projects/pingfen/ApiService.py a048ec6c707e:/app/
把文件直接映射到宿主机的文件夹中
docker run -itd -p 8080:80 -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf --name=webtest nginx:latest 命令创建容器,将宿主机nginx.conf文件映射到容器内部nginx服务/etc/nginx/目录下。
docker run -it --volumes-from dataVol ubuntu64 /bin/bash
--volumes-from用来指定要从哪个数据卷来挂载数据。
挂载【最后是镜像名】
docker run -it -v /D/pingfenqi/testload:/app/ pingfenqi
挂载目录并运行【只需要替换主机的文件,然后运行命令即可替换容器里的文件】
docker run -it -d -p 6000:6000 -v /usr/local/projects/pingfen:/app pingfenqi:v2
添加host【--add-host】
docker run -it -p 6000:6000 --add-host=es-api.5118.com:192.168.100.131 -v /data/seorank/:/app pingfenqi:v3
容器保存为镜像
docker commit pinyougou_nginx mynginx
? pinyougou_nginx是容器名称
? mynginx是新的镜像名称