为了账号安全,请及时绑定邮箱和手机立即绑定

在docker中构建ubuntu开发环境

标签:
Docker

环境

  1. 宿主机环境windows,从官网下载docker的windows版本,安装完毕后切换到Linux Containers

  2. 镜像使用ubuntu 16.04

docker三大概念

  1. 容器Container:相当于虚拟机

  2. 镜像Image:相当于虚拟机的iso

  3. 仓库Repository:相当于github,官网仓库是hub.docker.com

构建一个镜像,镜像的脚本默认名字为Dockerfile

FROM ubuntu:16.04 ENV.UTF-8 RUN apt-get update -y RUN apt-get -y install gcc \     g++ \     gdb \     automake \     autoconf \     libtool \     make \     cmake RUN apt-get -y install ssh \     ntp \     vim \     wget \     curl \     telnet RUN apt-get -y install git \     subversion \     doxygen \     lighttpd \     net-tools \     inetutils-ping RUN apt-get -y install python \     golang RUN apt-get -y install libbz2-dev \     libdb++-dev \     libssl-dev \     libdb-dev \     libssl-dev \     openssl \     libreadline-dev \     libcurl4-openssl-dev \     libncurses-dev \     autotools-dev \     build-essential \     libicu-dev \     python-dev RUN mkdir /var/run/sshd # change sshd listen port RUN sed -i 's/Port[ ]*22/Port 36000/' /etc/ssh/sshd_config RUN echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config # add user RUN mkdir /home/bingo RUN useradd -s /bin/bash bingo RUN echo "bingo:123456" | chpasswd RUN echo "bingo:123456" | chpasswd RUN chown -R bingo:bingo /home/bingo # Container should expose ports. EXPOSE 36000 CMD ["/usr/sbin/sshd", "-D"]

创建一个空目录,在其下建立一个名叫Dockerfile文件,输入以上内容

制作镜像

docker build -t ubuntu:dev.16.04 .

如果制作过程中出错,删除相关的命令,重新输入上面的命令继续制作

制作出来的镜像大小大概在960m左右,用"docker image ls"查看

启动容器

docker run -d --name dev-ubuntu -p 36000:36000 ubuntu:dev.16.04

-p 36000:36000 前面的36000为宿主机端口,后面为容器端口

docker启动的时候,需要把本容器也启动起来,带参数"--restart=always"

如果需要挂载本地磁盘,使用参数"-v /opt/projects:/home/bingo/"

docker端口映射等网络相关内容可以参考这篇文章

ssh登录到容器

ssh -p 36000 bingo@127.0.0.1

"127.0.0.1" 指宿主机的ip

-p 36000 指向宿主机的port

推到仓库,供以后重复使用

  1. https://hub.docker.com/ 上创建一个账号

  2. 登录仓库

docker login

按提示输入账号密码

  1. 编译,指向自己的用户名username

docker build -t username/ubuntu:dev.16.04 .

  1. 发布到hub

docker image push username/ubuntu:dev.16.04

发布后,就可以在 https://hub.docker.com/ 看到刚发布的镜像文件了

  1. 下次需要的时候,就可以用以下命令拉取

docker image pull username/ubuntu:dev.16.04



作者:mybestcool
链接:https://www.jianshu.com/p/c03a2f606db2

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消