Docker实战演习

超好用的容器技术

准备工作

报错:

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用户名和密码   连接即可

 

 

 

 

仅此而已

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃早餐的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值