我们 先来了解下 什么是docker?
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。
1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。
3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。
总之docker就是集装箱原理。
第一步先下载docker:
windows下docker的 地址,请点击左边的链接即可 ,提取码4ydb
准备:
第一,把你的电脑的bios的虚拟开关打开,各个品牌的打开方法自己百度
第二,启 windows 10 的 Hyper-V :控制面板 - 程序 - 启用或关闭 windows 功能
注:只有win10的专业版才有此功能
第二步:
我们进行docker的配置,
这里可以设置docker的内存以及占用核数
我们可以将docker下载源 更改为 网易的 http://hub-mirror.c.163.com
ok 配置完毕 我们的小鲸鱼开始起航了
开始:
去 Docker Hub 上拉取一个叫 hello-world 的集装箱(说白了就是从网上拉下来)
docker pull hello-world
然后让这个集装箱跑起来:
docker run hello-world
查看本机所安装的集装箱
docker images
例子:把hello-world 镜像保存在本地
docker save hello-world -o hellow-world.tar -o后面跟生成的路径
删除 镜像:
docker rmi hello-world
查看正在运行的容器
docker ps -a
删除所有的容器
docker rm docker ps -a -q
停止、启动、杀死一个容器
docker stop Name/ID
docker start Name/ID
docker kill Name/ID
win10下 docker上安装 fastdfs, 我的百度网盘上有 点击下载 提取码:id9t
docker load -i ⽂件路径/fastdfs_docker.tar
1, 假如 我们的这个tar文件在桌面, docker load -i /C:/Users/Administrator/Desktop/fastdfs_docker.tar
接下来把 我们的小鲸鱼共享磁盘设置,点击确定后会弹出 输入计算机密码的的窗口,
2. 运⾏tracker
执⾏如下命令开启tracker 服务
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
我们将 fastDFS tracker 运⾏⽬录映射到本机的 /var/fdfs/tracker⽬录中,注 在我们设置的共享磁盘下 建立这三层目录,
3. 运⾏storage
执⾏如下命令开启storage服务(/var/fdfs/storage 手动建立)
docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
注:TRACKER_SERVER=本机的ip地址,不是你的127.0.0.1,端口号设置22122
最后 我们来测试下 到底安装好了没有
docker images 查集装箱
docker ps -a 查容器
下图 代表你的应用正在运行中,
由于 fastdfs 在我们windows下 测试屡次出现问题,所有我们将项目转移到虚拟机上,
ubuntu18.04虚拟机安装docker
第一步:
sudo apt-get update
然后直接
sudo apt install docker.io
安装完成之后 可以
docker version 查看版本
或者 docker -v
然后获取镜像
可以利⽤已有的FastDFS Docker镜像来运⾏FastDFS。
获取镜像可以通过下载
sudo docker image pull delron/fastdfs
也可是直接使⽤提供给⼤家的镜像备份⽂件
sudo docker load -i ⽂件路径/fastdfs_docker.tar
成功之后可以
sudo docker image ls 查看镜像
列出本机所有容器,包括已经终止运行的
sudo docker container ls --all
加载好镜像后,就可以开启运⾏FastDFS的tracker和storage了。
删除镜像
sudo docker image rm hello-world
创建容器
sudo docker run [option] 镜像名 [向启动容器中传入的命令]
常用可选参数说明:
-i 表示以“交互模式”运行容器
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
–name 为创建的容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-e 为容器设置环境变量
–network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同
交互式容器
例如,创建一个交互式容器,并命名为myubuntu
sudo docker run -it --name=myubuntu ubuntu /bin/bash
2. 运⾏tracker
执⾏如下命令开启tracker 服务
sudo docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
我们将fastDFS tracker运⾏⽬录映射到本机的 /var/fdfs/tracker⽬录中。
执⾏如下命令查看tracker是否运⾏起来
sudo docker container ls
如果想停⽌tracker服务,可以执⾏如下命令
sudo docker container stop tracker
停⽌后,重新运⾏tracker,可以执⾏如下命令
sudo docker container start tracker
3. 运⾏storage
执⾏如下命令开启storage服务
sudo docker run -dti --network=host --name storage -e TRACKER_SERVER=10.211.55.5:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
TRACKER_SERVER=本机的ip地址:22122 本机ip地址不要使⽤127.0.0.1
我们将fastDFS storage运⾏⽬录映射到本机的/var/fdfs/storage⽬录中
执⾏如下命令查看storage是否运⾏起来
sudo docker container ls
如果想停⽌storage服务,可以执⾏如下命令
sudo docker container stop storage
停⽌后,重新运⾏storage,可以执⾏如下命令
sudo docker container start
注意:如果⽆法重新运⾏,可以删除/var/fdfs/storage/data⽬录下的fdfs_storaged.pid ⽂件,然后
重新运⾏storage。
停止与启动容器
停止一个已经在运行的容器
sudo docker container stop 容器名或容器id
启动一个已经停止的容器
sudo docker container start 容器名或容器id
kill掉一个已经在运行的容器
sudo docker container kill 容器名或容器id
删除容器
sudo docker container rm 容器名或容器id
将容器保存为镜像
sudo docker commit 容器名 镜像名
镜像备份与迁移
我们可以通过save命令将镜像打包成文件,拷贝给别人使用
sudo docker save -o 保存的文件名 镜像名
sudo docker save -o ./ubuntu.tar ubuntu
在拿到镜像文件后,可以通过load方法,将镜像加载到本地
sudo docker load -i ./ubuntu.tar
我们的python环境中,需要安装
安装
安装提供给⼤家的fdfs_client-py-master.zip到虚拟环境中
pip install fdfs_client-py-master.zip 本地下载
pip install mutagen
pip isntall requests
解压后 cd到该目录下
看截图
执行 (注意虚拟环境的切换)
python setup.py install
把这个安装包 安装到你的环境中即可
下载 文档 激活码:ayzh我们可以打开 shell环境:
python manage.py shell
from fdfs_client.client import Fdfs_client client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf') client.upload_by_filename(文件名)
接下来看看上传成功后的信息输出
最后 在浏览器 输入本地IP + 8888 +上面的红框字符串 测试是否可以读取上传的信息