docker2

部署应用映射外部目录

# 部署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: 就是一堆指令,可以生成镜像

  1. 对于开发人员: 可以为开发团队提供一个完全一致的开发环境
  2. 对于测试人员: 可以直接拿开发时所构建的镜像或者通过dockerfile文件构建一个新的镜像开始工作
  3. 对于运维人员: 在部署时,可以实现应用的无缝移植
传统的需要把容器打包发给人家,很大,但是dockerfile拷给别人只需要几kb

dockerfile指令

命令 作用
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