一个基本dockerFile(Ubuntu)
FROM ubuntu:latest
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update
RUN apt-get install -y apt-transport-https \
&& apt-get install -y vim \
&& apt-get install -y net-tools \
&& apt-get install -y tree \
&& apt-get install -y openssh-server \
&& apt-get install -y git \
&& apt-get install -y gcc \
&& apt-get install -y python3 \
&& apt-get install -y python3-pip python-dev build-essential \
然后通过 docker build -t ubuntu:basic . 生成image,其中 -t指定名字:TAG,?.是Dockerfile的搜索目录
docker启动
docker run -itd -p 主机任一端口:22 -v(挂载) 主机目录:容器中某目录 --name 容器起名 使用的image名 /bin/bash(启动后第一步做的事)
docker exec -it containerID /bin/bash
用ssh连接到container:
- 正常安装openssh-server
- 将id_rsa.pub附加到.ssh目录下的authorized_keys后(cat path1/id_rsa.pub >> path2/.ssh/authorized_keys),如果没有这个目录,就用ssh-keygen生成一下
- 编辑ssh配置文件?vim /etc/ssh/sshd_config,将以下内容注释去掉
- PubkeyAuthentication yes #启用公钥私钥配对认证方式
- AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
- PermitRootLogin yes #root能使用ssh登录
- Port 22
- 保存退出后,执行/etc/init.d/ssh restart?,重启ssh服务
然后就可以连接了,这里要注意,由于端口绑定,实际上宿主机连接的ip是自己的ip,并且要指定当初绑定的自己的那个端口
例如:ssh root@127.0.0.1 -p 3000 -i ~/.ssh/id_rsa,这里3000是当时和docker的22绑定的那个端口。
|