$ sudo yum update
#卸载旧版本docker(如果之前有安装)
$ sudo yum remove docker docker-common docker-selinux docker-engine
#安装依赖包
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#获取docker-ce的yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#筛选自己所需要的docker版本
$ yum list docker-ce --showduplicates | sort -r
#安装docker
$ yum install -y docker-ce-版本号
#启动并设置开机自启
$ systemctl start docker && systemctl enable docker
#配置镜像加速
$ vim /etc/docker/daemon.json
"registry-mirrors": ["https://yeopv49g.mirror.aliyuncs.com"]
$ systemctl daemon-reload && systemctl restart docker
二、制作镜像
1、制作后端程序镜像
$ cd docker/backend/
$ vim Dockerfile
FROM python:3.7-alpine #设置基础镜像
#更换安装源并安装基础依赖包
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories\
&& apk --update add --no-cache libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc \
&& apk add --no-cache openssl-dev curl jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev
WORKDIR /app #设置工作目录
COPY . /app #将代码全部放到容器上
#安装pipenv并根据pipfile.lock安装程序所需依赖包
RUN pip install pipenv --no-cache-dir -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \
&& cd senguocashier-backend/ \
&& pipenv install --deploy --system --ignore-pipfile \
&& rm -fr ~/.cache/pip* \ #删除pip缓存,缩小镜像
&& rm -fr /tmp
RUN chmod +x /app/start.sh
CMD ["./start.sh"] #用脚本启动程序
start.sh启动脚本内容:
$ cat start.sh
python ./code/manager.py runserver
Dockerfile关键点说明:
docker本身就是虚拟环境,所以在制作镜像的时候使用pipenv install --system将依赖安装到容器的python环境中,不需要创建虚拟环境进行安装。
制作镜像过程中无法安装pillow的问题请参照
pillow报错处理方式
。
启动容器:
$ docker build -t 镜像name .
$ docker run --name 容器name -d 镜像name
(未完待续)
一、部署准备1、创建项目目录,将资源都放在该目录下tree docker/docker/├── backend│ ├── Dockerfile│ └── start.sh├── docker-compose.yaml└── front ├── Dockerfile └── nginx3 directories, 4 files2、安装dock...
docker
是一种容器技术,用来创造独立的软件容器,属于操作系统的虚拟化技术,隔离的进程独立于宿主和其他隔离的进程。
docker
容器对比虚拟机
虚拟机:需要有必要的二进制库和完整的操作系统,并且占据所有预分配的资源。
docker
容器:与宿主共享操作系统,可以实现资源的动态分配,在用户空间以
分离
的进程运行
docker
镜像、容器和仓库
镜像是文件,容器是进程;他们之间的关系像是类和实例化对象的关系,一个类可以有多个实例化对象。而仓库是一个其中的存储、分发镜像的服务。
docker
pull
当用
Django
框架开发的网站
项目
完成后上线的话可以用物理主机、虚拟机来
部署
,也可以容器。今天来讲讲如何用
docker
部署
网站。本讲的主要内容:
1、ubuntu中安装dokcer和配置
2、使用
Docker
file文件来创建
项目
的镜像文件
3、使用
docker
-compose文件来
部署
项目
一、安装
docker
1、安装
docker
:
sudo apt install -y
docker
.io
sudo snap install -y
docker
.io --classic
#也可以安装dock
Docker
是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的容器,以便在任何环境中运行。使用
Docker
部署
前后
端
分离
项目
可以提高
部署
的可靠性和可重复性,并且可以更方便地进行测试和
部署
。
以下是
部署
前后
端
分离
项目
的一般步骤:
1. 编写
Docker
file 文件
Docker
file 文件是用于构建
Docker
镜像的脚本文件。在
Docker
file 中指定
项目
所需的软件和依赖项,并将它们打包成一个镜像。
2. 在
Docker
中构建镜像
使用
Docker
命令行工具构建
Docker
镜像。首先需要将
Docker
file 文件上传到
Docker
宿主机上,然后在
Docker
宿主机上执行构建命令。构建命令通常包括指定
Docker
file 的路径和镜像的名称。
3. 启动容器
使用
Docker
命令行工具启动
Docker
容器。启动命令通常包括指定容器使用的镜像、需要映射的
端
口、需要挂载的目录等参数。
4. 配置前
端
项目
将前
端
项目
打包成静态资源,并将其复制到
Docker
容器中。
5. 配置后
端
项目
将后
端
项目
打包成可执行文件,并将其复制到
Docker
容器中。
6. 运行
项目
在
Docker
容器中启动前
端
和后
端
项目
。通常需要使用不同的命令来启动前
端
和后
端
项目
。
7. 测试
项目
在浏览器中访问前
端
项目
,或者使用 curl 命令测试后
端
API 接口,测试
项目
是否正常运行。
总体来说,使用
Docker
部署
前后
端
分离
项目
能够提高
部署
的可靠性和可重复性,同时也能够更方便地进行测试和
部署
。