zoukankan      html  css  js  c++  java
  • docker的例子

    定制镜像

    做个测试服务器,testServer代码如下

    package main
    
    import (
        "net/http"
    )
    
    func main() {
        http.Handle("/", http.FileServer(http.Dir("./")))
        http.ListenAndServe(":12345", nil)
    }

    我们的目录结构如下

    $ tree
    .
    ├── Dockerfile
    └── files_to_add
        └── testServer

    编辑Dockerfile

    From debian
    RUN rm /etc/apt/sources.list
    RUN echo "deb http://ftp.cn.debian.org/debian jessie main contrib non-free" >> /etc/apt/sources.list
    RUN echo "deb http://ftp.cn.debian.org/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list
    RUN echo "deb http://ftp.cn.debian.org/debian-security/ jessie/updates main contrib non-free" >> /etc/apt/sources.list
    RUN apt-get -qq update;apt-get upgrade -y;apt-get install build-essential -y;
    
    EXPOSE 12345
    ADD ./files_to_add/ /myServer
    RUN chmod +x /myServer/testServer
    CMD "/myServer/testServer"

    根据Dockerfile建立docker镜像,由于建立完毕以后会自动运行,这里强行删除新起来的container

    docker build --force-rm --tag="rico/my_server:v1" ./mydocker/

    运行

    docker run --name="rico_server" --rm -p 11111:12345 rico/my_server:v1 &
    或者
    docker run -d --name="rico_server" -d -p 11111:12345 rico/my_server:v1

      

    打开浏览器

    http://127.0.0.1:11111

    看到效果

    附加几个技巧

    docker删除无名镜像

    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
    docker images|grep none|awk '{print $3 }'|xargs docker rmi

    docker删除已停止的容器

    docker rm $(docker ps -a -q)

    docker退出时删除容器

    docker run --rm
    docker run是根据镜像启动一个新容器
    docker start是根据已有的容器id启动容器
  • 相关阅读:
    由浅入深——从ArrayList浅谈并发容器
    Lambda表达式
    JVM初体验
    Redis主从复制
    Redis事务
    Redis基本命令
    Redis概述与安装
    Linux之SSH免密登录
    源码安装Nginx以及用systemctl管理
    CentOS 7 :Failed to start IPv4 firewall with iptables.
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/5030873.html
Copyright © 2011-2022 走看看