docker容器里怎么安装ftp协议

docker容器里怎么安装ftp协议


Qyouu
浏览 826回答 2
2回答

绝地无双

1、创建容器docker run --name centos_ssh_ftp --privileged=true -p 10.0.75.1:3222:22 -p 10.0.75.1:3223:3223 -p 10.0.75.1:3224-3299:3224-3299 -v e:/softs:/softs -it centos_ssh说明:--name centos_ssh_ftp #指定创建的容器的名称为centos_ssh_ftp--privileged=true #授权,开启系统文件的权限,比如可以编辑iptables-p <宿主ip:宿主端口:容器端口> #将宿主机的指定端口映射到容器的指定端口,就是子网对外开放的端口,可以多个,也可以设置区间段如,3224-3299,这里我们把3222映射到容器的22,则外网通过宿主机的3222端口进行ssh连接,其他端口是为vsftpd被动模式准备的-v <宿主机目录:容器目录> #将宿主机目录映射到容器对应目录,可以直接操作目录和文件-it <镜像名称> #以交互模式启动镜像,没什么可说的,启动完后会自动进入容器的root交互终端2、安装ssh先查看是否已经安装,看有没有sshdchkconfig --list #该命令可以看到本机上的服务和启动状态,以后设置服务开机子自启动也会用到yum -yinstall openssh-server安装完毕,查看chkconfig --listsshd手动启动sshdservice sshd start设置开机自启动chkconfig sshd on查看是否设置成功,2-5都是on就是设置成功# chkconfig --list sshdsshd0:off1:off2:on3:on4:on5:on6:off此时在宿主机外通过ssh远程连接工具远程到宿主机ip(10.0.75.1)的端口(3222)应该就可以了3、安装vsftpd查看是否已经安装了vsftpdrpm -aq|grep vsftpd没有则安装yum -y install vsftpd添加一个ftp用户用来登录useradd ftp给ftp用户添加密码passwd ftp设置ftp用户的根目录,先创建目录/data/ftpusermod -d /data/ftp ftp将该目录的拥有者改为ftpchown ftp /data/ftp修改配置文件vi/etc/vsftpd/vsftpd.confanonymous_enable=NO #不允许匿名登录ftpd_banner=welcome to ftp service #设置连接服务器后的欢迎信息max_clients=200 #指明服务器总的客户并发连接数为200max_per_ip=3 #指明每个客户机的最大连接数为3chroot_local_user=YES #只能查看自己的根目录listen_port=3223 #设置FTP工作的端口号,默认的为21 这里改为3223, 如果还是21映射过来,能登录却取不到目录pasv_enable=YES #开启被动模式pasv_min_port=3224 #被动模式的最小端口pasv_max_prot=3299 #被动模式使用的最大端口pasv_addr_resolve=YES #启用被动模式的回传地址pasv_address=10.0.75.1 #这里其实就是宿主机的ip启动vsftpservice vsftp start使用ftp连接工具,看是否正确连接,能否创建删除文件,是否可以访问根目录以外设置开机自启动chkconfig vsftpd on查看是否设置成功,2-5都是on就是设置成功# chkconfig --listvsftpdvsftpd0:off1:off2:on3:on4:on5:on6:off

皈依舞

步骤1:为我们的容器创建第一个镜像# 以 centos 镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令# 注:-t -i 参数用于创建一个虚拟的命令行。sudo docker run -t -i centos /bin/bash现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:yum -y update # 更新软件包yum install which # 安装which命令yum install git # 安装Git安装完成后,按 Ctrl + d 来退出容器的命令行。# 执行sudo docker ps -a,可以看到被我们终止的容器CONTAINER ID IMAGE COMMAND CREATED……da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..把我们所做的改变提交到一个新的容器:# 这里我们创建一个自己的基础容器,容器中安装好了文章中所需的常用工具。读者的容器 id 可能与文章中的有所不同,以上一步 docker ps -a 的结果为准。sudo docker commit da90 custom/base容器成功提交后,执行 sudo docker images ,我们会看到刚才提交的容器(如下面的结果所示)。我们就以这个容器为基础容器,再来创建一个新的容器。REPOSITORY TAG IMAGE ID CREATEDcustom/base latest 05b6cecd370b 2 minutes agocentos 6.4 539c0211cd76 10 months agocentos latest 539c0211cd76 10 months ago…步骤2:创建新的容器,并安装 apache# 以 custom/base 容器为基础,运行一个新的容器。sudo docker run -t -i custom/base /bin/bash# 安装 httpdyum install httpd步骤3:再次提交新的容器按 Ctrl + d 来退出容器的命令行,然后执行命令:# 这个命令会把步骤2中我们安装 httpd 带来的改变提交到新的名为 custom/httpd 的容器镜像中。你的容器 id 可能会和文章中有所不同,以 sudo docker ps -a 命令的结果为准。sudo docker commit aa6e2fc0b94c custom/httpd你应该已经发现了,我们创建了一个带有 http 服务器并可以复用的容器镜像。你可以根据这种思想,为自己所需的每个组件都创建一个容器,然后把这些容器复用于开发环境或者生产环境。步骤7:运行 http 服务器# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.# -v 参数把主机共享给虚拟机的一个卷挂载到容器中# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile# -p 参数把虚拟机的80端口映射到容器的80端口;虚拟机的80端口在 Vagrantfile 中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash# 启动 Apacheapachectl -k start
打开App,查看更多内容
随时随地看视频慕课网APP