超好用的容器技术
准备工作
报错:
Hardware assisted virtualization and data execution protection must be enabled
解决办法
1. 开启电脑的虚拟化
2.执行下面的两个命令,启动管理员power shell 命令行
1.dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
2.bcdedit /set hypervisorlaunchtype auto
本机docker centos的ip地址是 172.17.0.3
安装Centos 并 在上面安装 ssh 和
docker中centos容器开启ssh服务远程连接
yum install -y net-tools // 支持ifconfig命令
接着安装openssl,openssh-server
yum install -y openssl openssh-server // 支持 ssh连接
然后启动ssh ,这里会报错
[root@68e7598797d7 /]# /usr/sbin/sshd -D
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
需要进行下面的设置
[root@68e7598797d7 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@68e7598797d7 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@68e7598797d7 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
接着修改sshd_config文件配置信息,路径为 /etc/ssh/sshd_config
1.将 Port 22 前面的注释去掉(开启22号端口)
2.将 PermitRootLogin 的 no 改为 yes (这里是设置是否允许root用户登录,可根据自己需求决定是否开启)
重新启动ssh
[root@68e7598797d7 /]# /usr/sbin/sshd -D &
[1] 16
注意,如果设置都没问题的话,命令结尾加个‘&’,自动后台运行,启动成功会返回进程号(每次重启都要开启,否则无法连接)
给root添加密码
[root@68e7598797d7 /]# yum install passwd
[root@68e7598797d7 /]# passwd
将当前容器保存成新的镜像
先退出并关闭刚才的容器,可以使用 exit 命令,然后保存镜像
docker commit mycontainer newimage
1 ‘mycontainer’ 为刚才使用的容器,'newimage’为新的镜像名,可以根据自己的需要改动
基于新镜像重新启动一个容器
docker run -itd --name newcont -p 8000:22 newimage
命令中的端口号可以指定也可以使用大写P自动映射(建议自己指定)
注意:进入容器并重新开启ssh,不会自动启动
[root@68e7598797d7 /]# /usr/sbin/sshd -D &
[1] 15
接着就可以 使用xshell远程连接
启动完成后就可以通过xshell或者其他连接工具进行远程连接了,记住,ip是宿主机的IP地址,端口号宿主机上的端口,即上面端口映射命令中的 8000 !
安装ftp 服务(略)
几个非常重要的命令:
docker run -itd centos:centos7 /bin/bash 启动centos服务 无法使用service 命令 只能用systemctl
docker run -itd centos:centos7 /usr/sbin/init 启动centos服务 (此启动方式 仍然不能运行service命令)
docker run -d -name centos7 --privileged=true centos:centos7 /usr/sbin/init
docker exec -it 91980 bash 91980 为centos7容器的id
此时如果运行service 无法启动
需要用命令 yum install initscripts
此时还会抱一个错:
Failed to get D-Bus connection: Operation not permitted
终极解决办法
[root@sadcat ~]# docker run -itd --privileged=true --name=brand brand:0713 /usr/sbin/init 49b7ba4f40c9918d6bf3cfdb23c03c4f70e4d0a23aedf0ac66e1f749d1adb1a5
[root@sadcat ~]# docker exec -it brand /bin/bash
就可以了
xftp的连接
地址写 本机IP 即可 协议选 SFTP 端口默认22 然后输入centos用户名和密码 连接即可
仅此而已