Docker 搭建ftp服务器

1.拉取 镜像

docker pull fauria/vsftpd



2.启动容器

    在223服务器保存的  ftp服务地址   /mnt/data/ftp 

docker run -d -v /mnt/data/ftp:/home/vsftpd -p 20:20 -p 2121:21 -p 21100-21110:21100-21110 -e FTP_USER=myuser -e FTP_PASS=mypass -e PASV_ADDRESS=192.168.10.224 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd 

执行时 会出现

docker: Error response from daemon: Conflict. The container name "/vsftpd" is already in use by container "0649a2c9fe3729f3ddeadf849ef299b1bcf8fa1406159f7e6c2b75f6a25ab319". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.      执行 后 会发现  之前启动失败的容器还在  需要重新进行修改  将之前启动失败的容器删除掉

docker ps –a  

docker rm   <查询到的容器的id >    上边查询到的


3. 进入容器


docker exec -i -t vsftpd bash 进去docker

vi /etc/vsftpd/virtual_users.txt 编辑配置文件写入用户跟密码

mkdir /home/vsftpd/user 建立新用户文件夹

/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db 写入数据库

docker restart +(虚拟机运行的 imageId) 重启服务 


重启后访问对应的 服务器 端口,便可以登录 ftp 服务




docker  复制另外一个镜像    启动时启动当前的tomcat  并重命名

docker run -d -p 8099:8080 -v /mnt/data/docker-file/FILE_MANAGE_PRJ:/usr/tomcat/webapps/     --name FILE_MANAGE_PRJ_tomcat  -d tomcat


docker 发布tomcat 项目单独挂载到本地文件夹


执行命令   通过挂载方式   docker tomcat 发布当前将要发布的项目

docker run -d -v /mnt/data/docker-file/FILE_MANAGE_PRJ/FILE_MANAGE_PRJ:/usr/local/tomcat/webapps/FILE_MANAGE_PRJ     -p   10001:8080   file_tomcat

docker cp -a <Local-Machine-Path> <Container-ID>:<Container-Path>


docker 查考容器的长 id

docker inspect -f '{{.ID}}' python

docker  将文件夹 cp 到容器中

docker cp -a <Local-Machine-Path> <Container-ID>:<Container-Path>

docker cp -a /mnt/data/docker-file/FILE_MANAGE_PRJ/    93e9c5401015:/usr/local/tomcat/webapps/


docker运行容器

docker run -it --rm –p   10001:8080     file_tomcat

docker run -it --rm –p 10002:8080 file_tomcat


docker 后台启动 ,不显示日志 打印

docker run –d  -p 1001:8080 meihua_tomcat


docker 查看容器日志

docker logs -f -t --since="2018-10-10" --tail=100  meihua_tomcat

--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。

-f : 查看实时日志

-t : 查看日志产生的日期

-tail=10 : 查看最后的10条日志。

edu_web_1 : 容器名称


项目     发布  

(*******使用已经启动的容器***********)

将要发布的文件上传到 对应的docker服务宿主计算机

/mnt/data/docker-file/ 项目名

将文件复制到的容器

docker cp -a /mnt/docker-file/项目名/    3a3478726679:/usr/local/tomcat/webapps/项目名/

将正在运行的 ,已经上传文件的容器 编程成一个新的容器 

docker  commit  -m “提交容器注释” –a  “容器作者”   <容器id/ 容器名称>    <新的容器名称>


启动新的 docker 容器  (后台启动 ,不显示日志信息)

docker  run –d     -p  1003:8080     <新建的容器名称 >


// 给将要运行的 容器起一个名字 方便后边的  日志查看(*需要手动输入,不然会报错*)

                                                   重新命名容器名称     将要运行的镜像名称/镜像id  

docker run –itd   -p  10003:8080  --name changan    changan_tomcat 

    错误:

Unable to find image 'chagnan_tomcat:latest' locally
docker: Error response from daemon: pull access denied for chagnan_tomcat, repository does not exist or may require 'docker login'.

以上错误是在容器运行时已经存在运行的容器

      可以详细查看  已经运行 过的容器 列表  docker ps –a  

    删除掉重复名称的  docker  image     删除命令  docker  rm   <容器名称>


根据启动的容器的名称 docker ps 中的name 查看 容器的日志信息   (查看日志信息)

docker logs –f  --tail=100  upbeat_perlman

猜你喜欢

转载自www.cnblogs.com/JC-0527/p/9836151.html