zoukankan      html  css  js  c++  java
  • docker使用

    docker system prune -af --volumes

     https://github.com/kubernetes/minikube/issues/1043

    1、参数大全

    1.1

    docker    run    -it    --rm    
              ubuntu:16.04
              bash

    只能用第二种方法,一步一步来的。就可以进入一个ubuntu的系统

    参数说明:

     1.2用dockerfile构建一个自己的镜像

    文件名称:Dockerfile(只能是这个,可以改,但没必要)

    文件内容:

    FROM    nginx
    RUN    echo    '<h1> vimi test without auto remove </h1>'    >    /usr/share/nginx/html/index.html 

    然后用

    docker build -t nginx:vimi .

    最后的那个点,代表build在当前目录下的docekrfile文件

    就会生成一个镜像

    docker run -d -p 1515:80 --name vimiWebServer nginx:vimi

    运行一个容器,在本机的1515端口上,就能访问到

    build的时候会把整个目录的东西都send去docker服务器哦,所以需要在一个空文件夹中放Dockerfile,需要某些文件支持的,不能写/opt/shaer/xxx

    因为访问不了,因为是把他复制过来,放在Dockerfile的上下文目录下,用./xxx这样访问。然后,如果有些东西不希望上传,可以用.gitignore类似的语法

    写一个.dockerignore

    1.3:将go工程放去docker,其中golang:update是一个拥有vim的golang环境,安装其实也很简单,首先sudo apt-get update && sudo apt-get install vim

    如果./main下拥有多个go文件,会一起编译的,并且不能有多个main函数

    FROM golang:update
    
    MAINTAINER vimi "vimiming@gmail.com"
    
    WORKDIR /home/vimi/Golang/project/test/src/main/
    
    COPY . /home/vimi/Golang/project/test/src/main/
    
    RUN go build .            //这里用 RUN go run .   会死循环的      还是?(RUN go run web.go) ??
    
    ENTRYPOINT ["./main"]

     golang:updae dockerfile文件

    FROM golang:latest
    
    MAINTAINER vimi "vimiming@gmail.com"
    
    RUN apt-get update 
        && apt-get install -y vim 
        && apt-get autoremove -y

    2、一些命令:

    2.1:docker ps,列出现在运行的容器,用docker ps -a可以查看所有容器(包括没运行的),也可以用docker container ls -a

    2.2:docker image ls,列出现在有的镜像,但是这些镜像的体积总和不是实际的存取空间和,因为同一层的话,只使用一次union FS技术。所以用

       docker system df  才能查看所有体积和。还有就是,网络上显示的大小是压缩的大小,因为其关注流量。下载后的是物理大小,因为其关注的是空间

    2.3:docker image remove name可以删除一个镜像(需要镜像没有对应的容器在运行)。

    2.4:docker stop name停止容器,docker rm name,删除一个停止的容器

    2.5:docker container vimiWebServerNginx logs, 能查看这个容器输出的信息。因为其加了 -d  这个参数,所以这个容器是后台运行的,不加就是输出在当前的终端

            应该是docker logs -f containerName

    2.6:-i, 是分配标准输入,-t, 是分配一个伪终端,所以用 -it是分配一个交互式的shell

    2.7:一个正在运行的容器,如果用了-d,也就是后台运行,可以用docker exec -it vimiWebServerNginx bash  来进入它的bash(和ubuntu差不多的bash,不过没vim之类的,很麻烦,可以用echo来弄。。。。)

    2.8:参数 -f往往是强制的意思,比如删除一个正在运行的容器,用docker container rm -f containName

    2.9:docker container prune,可以把所有停止的container都删除

    2.10:docker search centos,可以查询对应镜像,然后用docker pull

    2.11:docker tag myip vimi/findip把镜像打包好,即可docker push vimi/findip。登录是docker login -p xxxx -s xxxx,前面要用proxychains

    2.12:docker volume create my-vol,可以创建一个数据卷, docker volume inspect my-vol 可以查看数据卷,以json形式输出信息,也可以用docker inspect container来查看一个容器的信息。

    2.13:

    docker run -d -p 80:80 --name web 
    --mount  type=bind,source=/home/vimi/Downloads/web/,target=/usr/share/nginx/html/ 
    nginx

    这样可以把本地目录映射到容器上面,然后在本地目录加上一个html网页,也可以运行到

     上面是文件夹 -- 文件夹

    也可以用文件 -- 文件,这样如果容器上的文件被修改了,可以立刻反应到本地目录上。

    也可以捆绑一个数据卷上去

    3、一些技巧:

    FROM    debian:jessie
    RUN    buildDeps='gcc    libc6-dev    make'    
                    &&    apt-get    update    
                    &&    apt-get    install    -y    $buildDeps    
                    &&    wget    -O    redis.tar.gz    "http://download.redis.io/releases/redis-3.2.5.tar.gz"    
                    &&    mkdir    -p    /usr/src/redis    
                    &&    tar    -xzf    redis.tar.gz    -C    /usr/src/redis    --strip-components=1    
                    &&    make    -C    /usr/src/redis    
                    &&    make    -C    /usr/src/redis    install    
                    &&    rm    -rf    /var/lib/apt/lists/*    
                    &&    rm    redis.tar.gz    
                    &&    rm    -r    /usr/src/redis    
                    &&    apt-get    purge    -y    --auto-remove    $buildDeps

    用Dockerfile构建docker的时候,可以用#添加注释,用代表换行。。然后最后一句的auto-remove很重要,因为这一层的东西不会被下一层改变,所以要删除冗余的东西。

     每一个run是一层,一个不同的容器。也就是run cd app/      下一个run和上一个run木有关系,不是在app这个目录下的

    每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更。

    1、更新docker  docker更新      卸载docker  下载docker-compse

    2、安装docker-compose :  pip install docker-compose

    3、运行docker连接到代理 && 安装proxychains,  vim /etc/proxychains.conf更改配置

    docker-machine

    https://www.cnblogs.com/sparkdev/p/7044950.html

    首先远程电脑什么都不用安装,就是一个裸机

    然后,需要一个账号辅助我们。

    docker-machine就是,在本地,帮远程安装docker,当然还可以在本地远程控制他的docker

    eval $(docker-machine env [yourname])

    就可以远程控制docker  

    docker-file中的那些

    COPY db dbrestore/db

    这样会新建dbrestore/db这个目录然后把workdir切换到这里

    如果用rsync -avz db root@95.163.202.160:rsync/db

    会是rsync/db/db

    FROM mysql:5.7
    
    COPY db dbrestore/db
    
    WORKDIR dbrestore
    
    CMD mysql -h${DC_DB_HOST} -uroot -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} < db/sql/latest_dump.sql
    因为这个有image

    所以不用了,直接在dockerfile上弄。一定要有workdir

    jsp + tomcat + docker

    JSP书写

    项目目录 + tomcat in docker

    tomcat in docker random bug

  • 相关阅读:
    install jprofiler for ubuntu
    android manifest相关属性
    install nginx for ubuntu
    Android shape
    mobile web for no cookie session
    Android布局属性
    什么是强类型,强类型集合
    radl (三) (转)
    几个.net 基础问题,自己回答了一些,请大家指教
    c#接口和抽象类的区别
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/8461689.html
Copyright © 2011-2022 走看看