美文网首页Docker容器
在docker中构建ubuntu开发环境

在docker中构建ubuntu开发环境

作者: 6017e164c325 | 来源:发表于2018-08-16 11:20 被阅读1次

    环境

    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 LANG=en_US.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
    

    相关文章

      网友评论

        本文标题:在docker中构建ubuntu开发环境

        本文链接:https://www.haomeiwen.com/subject/izyibftx.html