Dockerfile 文档内容
#设置基本的镜像,后续命令都以这个镜像为基础 FROM ansible/centos7-ansible:latest #作者信息 MAINTAINER JPinsz #安装wget命令 RUN yum clean all RUN yum makecache fast RUN yum install wget -y #删除默认YUM源,使用YUM源为国内163 YUM源; RUN rm -rf /etc/yum.repos.d/*;wget -P /etc/yum.repos.d/ http://mirrors.163.com/.help/CentOS7-Base-163.repo #RUN命令会在上面指定的镜像里执行任何命令 RUN yum install passwd openssh-server gcc -y #修改root密码为1qaz@WSX RUN echo '123' | passwd --stdin root #设置镜像SSHD服务为TCP 6022端口 RUN sed -i 's/#Port.*/Port 6022/g' /etc/ssh/sshd_config #安装vi、vim、wget、tar、make、netstat、ifconfig等 RUN yum install vi vim wget tar make net-tools -y #创建用于存储应用数据目录/data/ RUN mkdir -p /data/ #将应用数据存储目录/data/进行映射,可以实现数据持久化保存; VOLUME ["/data/"] #暴露ssh端口6022 EXPOSE 6022 #设定运行镜像时的默认命令,并以daemon方式启动sshd #基于镜像运行启动时,启动SSHD服务,能够实现远程访问 RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' CMD /usr/sbin/sshd -D
镜像制作
docker bulid -t centos7:v1 .
查看镜像
docker images
启动容器
# -d –detach daemon后台模式运行容器,并且打印容器id。 # -i –interactive 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用 # -t –tty 分配一个伪tty,一般与 -i 连用。 # -v 指定宿主机到容器的目录挂载 # --privileged 授予容器最高权限运行 docker run -itd --privileged -v /data/:/data/ centos7:v1
登录到容器
# 其中/bin/bah 与 bash 暂时来说效果一致 docker exec -it docker-id /bin/bash