# 部署redis,把配置文件和数据目录映射出来
-1 mkdir /reids /redis/conf /redis/data
-2 vim /redis/conf/redis.conf
# 配置文件
bind 0.0.0.0
daemonize NO
protected-mode no
requirepass 123456 # 这个是设置密码.在外部连接的时候就需要输入密码
-3 创建并运行容器
docker run -p 6378:6379 --name redis_6379 -v /redis/conf/redis.conf:/etc/redis/redis.conf -v /redis/data:/data -di redis redis-server /etc/redis/redis.conf # 这个映射完之后,就算是容器挂掉了,数据也不会丢失,只要以后在起容器的时候只要映射的路径还是原来的就可以
-4 本地window机器上远程连接到了docker里的redis
-5 cmd窗口下
redis-cli -h 101.133.225.166 -p 6378
-6 认证
auth 123456
-7 写入数据
set name lqz
-8 保存数据
save或者是bgsave
-9 在宿主机的/redis/data路径下就能看到一个文件
-10 不管多少次重启redis容器,数据都还在
-11 原来的redis容器没了,按照第三步再启动一遍,数据都还在
在容器里安装django的环境
# 拉python的镜像
docker pull python:3.6
# 创建容器在后台运行
docker run -id --name:python-container python:3.6
# 进入容器:
docker exec -it 容器id/名字 /bin/bash
# 起django
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ django==2.0.7
或者
pip install django==2.0.7
在容器外把容器打包成镜像
docker commit 容器id mydjango # 给这个容器打包成镜像
把镜像打包成压缩包
docker save -o mydjango.tar mydjango
压缩包 把容器打包成镜像名
把压缩包恢复成镜像
docker load -i mydjango.tar
# 你压缩的是800m,解压的时候只有40m,因为在docker里面有了python基础镜像,不会重复. 假如你去拉一个5G的东西,假如docker里面有基础镜像,不会拉新增部分
自己制作镜像起容器跑项目
1. 启动一个python容器
docker run -id--name=容器名 python:3.6
2. 进去装软件
docker exec -it 容器id/名字 /bin/bash
mkdir /project
pip install django==1.11.1
退出
3. 把项目拷贝到容器内部
docker cp /opt/laz/django_text mypython(容器名或id):/project
4. 把容器做成镜像
docker commit 容器id mydjango # 给这个容器打包成镜像
5. 基于自己做的镜像运行容器
docker run -id --name=mydjango -p 8088:8088 mydjango python /project/django_text/manage.py runserver 0.0.0.0:8088
dockerfile: 就是一堆指令,可以生成镜像
传统的需要把容器打包发给人家,很大,但是dockerfile拷给别人只需要几kb
命令 | 作用 |
---|---|
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量 (可以写多条) |
RUN command | 是Dockerfile的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
原文:https://www.cnblogs.com/zc110/p/14640702.html