环境
操作系统:CentOS7.5
Docker:18.09.6
一、虚拟CentOS系统
1.运行一个centos7镜像
注意:要加上-d,如果不加,这个当退出的时候,发现没有docker镜像了。
docker run --rm -d -i -t centos:centos7.5.1804 /bin/bash
自动从镜像站拉取
查看docker运行的镜像
docker ps -a
2.进入运行的Linux操作系统
第一步中使用的后台静默的方式运行,通过docker attach 访问该容器,后面加上容器ID(CONTAINER_ID)
方式1
docker attach 5f8f885a61ae # exit的时候会导致容器停止
方式2
docker exec -it bb2 /bin/sh #exit时容器不会停止
方式3
docker inspect --format "{{.State.Pid}}" <ID>
nsenter -t <pid> -u -i -n
3.初始化安装
进入CentOS镜像系统后是没有一些组件的,需要自己安装
# ifconfig
yum search ifconfig
yum install net-tools.x86_64
# wget
yum -y install wget
# vim
yum -y install vim-enhanced
4.修改密码
passwd root
改成自己的密码
5.安装sshd
yum install passwd openssl openssh-server -y
执行命令
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
修改配置文件支持ssh连接
vim /etc/ssh/sshd_config
默认是被注释掉的,放开注释
PermitRootLogin yes
然后启动sshd
/usr/sbin/sshd -D
6.保存镜像
另开一个终端
docker ps -all
提交docker镜像仓库,注意修改仓库id
docker commit 5f8f885a61ae centos7.5-ssh
检查是否有新的镜像
docker images
7.删除镜像
首先镜像必须停止,然后查询所有镜像,通过删除repository或者image_id
docker rmi 5589c27418fc
8.在服务器上基于新创建的镜像启动新的容器
查看正在运行的容器
停止容器
docker rm -f 5f8f885a61ae
启动新镜像容器
docker run -d -p 10022:22 node1:latest /usr/sbin/sshd -D
查看端口是否映射成功
docker ps -all
docker port c453d011c5a8
附注:
#退出,但不停止容器
Ctrl+P+Q
#回到Docker下面,停止容器 (容器ID即:CONTAINER ID)
docker stop <容器ID>
#提交当前容器到镜像
docker commit <容器ID> <NAME/VERSION>
#启动新容器,并且进行端口映射(刚才提交的镜像id即:通过docker images看到的REPOSITORY: REPOSITORY 即:node1:latest)
docker run -itd -p 10022:22 <刚才提交的镜像ID> /bin/bash
9.xshell连接
使用宿主机ip:10022
用户名:root
密码:自己设置的密码