1. 首先准备好centos镜像
如果没有的话需要 docker pull centos:7.5
通过: docker images 能查看到镜像即可
2. 初始化运行容器
1. docker run
-i 交互模式: 打开容器界面
-t 作用是分配一个虚拟的终端,有了-t参数,在docker中启动bash就会有提示符。-it总是一起出现的
-d 后台运行
--privileged 给root权限,让容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
?
2. 参考官方文档: docker run | Docker Documentation
--privileged |
Give extended privileges to this container |
--interactive , -i |
Keep STDIN open even if not attached |
--detach , -d |
Run container in background and print container ID |
--tty , -t |
Allocate a pseudo-TTY |
3. 打开正在运行的centos容器
1. 查看正在运行的容器 docker ps ?
2. 打开正在运行从的容器:docker exec -it 容器id /bin/bash
3. 官方参考文档:docker exec | Docker Documentation
--interactive , -i |
Keep STDIN open even if not attached |
--tty , -t |
Allocate a pseudo-TTY |
4. 修改root账户密码
passwd
密码: RamaYu1234?
5. 下载openssh-server 远程连接工具
yum install openssh-server -y , -y 表示下载过程中默认选择 yes?
6. 下载vim 文档编译工具
试图编辑 /etc/ssh/sshd_config 但是发现没有安装vim
于是 yum install vim -y?
7. 编辑 远程连接配置文件 /etc/ssh/sshd_config
1. 两个地方: PermitRootLogin yes, UsePAM no 注意大小写?
8. 重启sshd 并且退出
systemctl start sshd
exit?
9. 将配置好的容器生成新镜像
1. docker commit -a “作者” -m "提交信息" 容器ID 镜像名:TAG
2. 参数参考docker commit | Docker Documentation
--author , -a |
Author (e.g., "John Hannibal Smith <hannibal@a-team.com>") | |
--message , -m |
Commit message |
3. 打包后 docker images 查看镜像
?
10. 启动新生成的镜像容器
docker run -d -p2222:22 centos7:rama /usr/sbin/sshd -D
-d 后台运行
-p 2222:22 宿主机访问接口:容器内部本来接口
注意* : 这里只映射了一个端口 :如果映射多个端口 可以参参照 多个-p -p
11. 用xshell 工具连接容器centos7
1.对外部开放的是2222端口对应容器里面的 22端口?
2. 使用宿主机IP + 容器对外暴露的 端口连接?
3. 登录成功?