一、vmware上安装centos7
教程见超详细虚拟机VMware安装Centos7教程(图文) - 知乎 (zhihu.com)
很详细,没有遇到什么问题
二、基于centos7 安装docker
参考Docker学习之CentOS 7安装配置 - 腾讯云开发者社区-腾讯云 (tencent.com)
主要步骤如下:
查看linux内核版本
cat /proc/version
更新yum源
yum update
安装
yum install docker -y
检查版本
docker -v
安装完后,使用如下命令启动docker服务,并设为开机启动
service docker start
chkconfig docker on
下载官方centos镜像
docker pull centos
检查一下
docker images
看到如下结果便是可以了
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 5d0da3dc9764 14 months ago 231 MB
可以重命名TAG
docker tag 5d0da3dc9764 docker.io/centos:centos
启动容器
docker run -i -t -v /root/software/:/mnt/software/ 5d0da3dc9764 /bin/bash
命令参数说明:
docker run <相关参数> <镜像 ID> <初始命令>
- -i:表示以“交互模式”运行容器
- -t:表示容器启动后会进入其命令行
- -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
再用docker ps -a查看一下运行中的容器
三、安装vsftp
教程(1条消息) 使用docker安装vsftpd(非常简单)_Sparkle_wsl的博客-CSDN博客
创建目录
cd /home
mkdir ftp
拉取vsftpd镜像
docker pull fauria/vsftpd
启动镜像
docker run -d -v /home/ftp:/home/vsftpd -p 20:20 -p 60021: 21 -p 21100-21110 -e FTP_USER=root -e FTP_PASS=root -name vsftpd fauria/vsftpd
命令解释:
- docker run -d ->运行容器。
- -v /home/ftp:/home/vsftpd -> -v (宿主机目录:容器目录) 将宿主机的目录和容器的目录挂载到一起,绑定之后宿主机有的文件容器中也有,反之相同。
- -p 20:20 -p 60021: 21 -p 21100-21110 -> -p (宿主端口:容器端口), 其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。
- -e FTP_USER=root -e FTP_PASS=root ->指定环境变量,登录ftp的时候需要的用户名和密码
- -name vsftpd fauria/vsftpd -> --name (容器名 镜像名)
测试
# 进入/home/ftp目录查看会发现多了一个root文件,别人上传到ftp的文件就在这里。
cd /home/ftp
//创建文件
touch 1.txt
浏览器访问
(到这儿就不行了,尝试了关闭防火墙,也不行)
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=21100/tcp
firewall-cmd --permanent --add-port=21101/tcp
firewall-cmd --permanent --add-port=21102/tcp
firewall-cmd --permanent --add-port=21103/tcp
firewall-cmd --permanent --add-port=21104/tcp
firewall-cmd --permanent --add-port=21105/tcp
firewall-cmd --permanent --add-port=21106/tcp
firewall-cmd --permanent --add-port=21107/tcp
firewall-cmd --permanent --add-port=21108/tcp
firewall-cmd --permanent --add-port=21109/tcp
firewall-cmd --permanent --add-port=21110/tcp
firewall-cmd --reload
(有时间再试试)
四、某个镜像save成文件,删除,load装回
先save,记得镜像名:版本号
docker save docker.io/centos:centos -o centos.tar
通过ll查看一下是否有centos.tar
[root@localhost home]# ll
总用量 490148
-rw-------. 1 root root 238581248 11月 19 23:11 centos.tar
drwx------. 3 ftptest ftpuser 91 11月 19 22:07 ftp
drwx------. 15 roo roo 4096 11月 20 2022 roo
删除之前,先停止运行中的容器
docker stop $(docker ps -a -q)
删除具体镜像
docker rmi docker.io/centos:centos
装回
docker load -i centos.tar
再docker images查看,又有了,装回成功
POSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos centos 5d0da3dc9764 14 months ago 231 MB
docker.io/centos latest 5d0da3dc9764 14 months ago 231 MB
docker.io/fauria/vsftpd latest 007276d7208b 2 years ago 255 MB
五、端口映射
【精品】Docker新手快速入门上手教程:15_Docker容器宿主机端口映射【雷电 论坛 www.leidian6.com】_哔哩哔哩_bilibili
docker run -it -p 8888:8080 centos:latest