• docker


    yum install epel-release.noarch

    yum install docker-io.x86_64

     

    docker info

     

    docker exec -ti alex /bin/bash一般用这个,退出用ctrl d

     

    docker run -i -t ubuntu /bin/bash

      -i表示容器中stdin是开启的。

      -t为创建的容器分配一个伪tty

     

    docker ps -l 列出最后一次运行的容器,包括运行和已经停止的。

     

    docker ps -a 列出所有容器

     

    docker ps -a -q 列出所有容器,只显示id

     

    docker ps 列出正在运行的容器

     

    docker run --name alex_container -i -t ubuntu /bin/bash 创建一个名叫alex_container的容器。

     

    docker start 54940193f5d7  或者docker start alex_container

     

    docker attach alex_container 进入这个container

     

    创建守护式容器docker run --name alex_container -t -i -d ubuntu /bin/bash

     

    docker images 列出物理机上所有镜像

     

    docker pull ubuntu 不要用,会拉取ubuntu仓库中所有镜像

     

    docker run --name blex -i -t ubuntu:12.04 /bin/bash  启动ubuntu12.04容器

     

    docker search centos 

     


     

    用Dockerfile构建镜像

    mkdir static_web

    cd static_web

    vim Dockerfile

    FROM ubuntu:14:04

    MAINTAINER ALEX HE "alex@alexhe.net"

    RUN apt-get update

    RUN apt-get install -y nginx

    RUN echo "hi im alex" >/usr/share/nginx/html/index.html

    EXPOSE 80

     

    from指定一个已经存在的镜像,基础镜像

    maintainer指令,告诉docker该镜像的坐着是谁,以及坐着的邮件地址。

    expose指令告诉容器内的应用程序将会使用容器的指定端口。可以指定多个expose指令向外部公开多个端口。

     

    最后执行docker build -t="alex/static_web" .

    或者给个标签号docker build -t="alex/static_web:v1" .

     

    docker images alex/static_web 查看这个镜像的信息

    docker history b7c0d3dff989 查看这个镜像怎么构建出来的

     

    docker run -d -p 80 --name alex_web alex/static_web nginx -g "daemon off;"

    nginx -g "daemon off;" 这将以前台运行的方式启动Nginx,作为我们的web服务器

    -p,控制docker在运行时应该公开哪些网络端口给外部(母机)。

    docker ps  查看哪个端口映射到了container的80端口

    CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                   NAMES

    706acc8f76c1        alex/static_web     "nginx -g 'daemon of   5 seconds ago       Up 4 seconds        0.0.0.0:32768->80/tcp   alex_web     

     

     

    docker port 706acc8f76c1 80

    0.0.0.0:32768

     

     

    -p选项还能灵活的管理容器和宿主之间的端口映射关系。比如可以指定将容器中的端口映射到docker宿主机的某一特定端口上,

    如:

    docker run -d -p 48888:80 --name alex_web alex/static_web nginx -g "daemon off;" 这将容器中的80端口绑定到宿主机的48888端口

    docker run -d -p 127.0.0.1:48888:80 --name alex_web alex/static_web nginx -g "daemon off;" 将容器内的80端口绑定到宿主机127.0.0.1的80端口

    docker run -d -p 127.0.0.1::80 --name alex_web alex/static_web nginx -g "daemon off;" 将容器内的80端口绑定到宿主机的随机端口上

     

     

    -e传递环境变量

    docker run -ti -e "WEB_PORT=8080" ubuntu env 这样就会传递进去环境变量

     

     

    VOLUME指令

    VOLUME ["/opt/project"]为基于此镜像创建的任何容器创建一个名为/opt/project的挂载点。

    也可以通过数组:VOLUME ["/opt/project","/data"]

     

     

    ADD指令用来构建环境下的文件和目录复制到镜像中

    ADD software.lic /opt/application/software.lic

    这里的add指令将会构建目录下的software.lic 文件复制到经相中的/opt/application/software.lic

    或者用url:ADD http://wordpress.org/latest.zip /root/wordpress.zip

     

     

    COPY指令

    COPY指令不会提取贺解压文件。

    COPY conf.d/ /etc/apache2/

     

    挂载文件夹

    docker run --name alex -v `pwd`:/mnt ubuntu /bin/bash

     


     

    运行自己的Docker Registry

    docker run -p 5000:5000 registry启动一个运行Registry应用的容器,并绑定到宿主机的5000端口

    docker images alex/static_web 找到镜像id,b7c0d3dff989

    docker tag b7c0d3dff989  192.168.1.1:5000/alex/static_web   用新的registry给该镜像打上标签

    docker push 192.168.1.1:5000/alex/static_web    push命令推送到新的registry中去

     

    使用自己的registry创建容器

    docker run -t -i 192.168.1.1:5000/alex/static_web clex /bin/bash

     

  • 相关阅读:
    Android自定义Dialog效果
    Attempt to invoke virtual method 'void android.app.ActionBar.setTitle的解决方法
    Android 震动 和 停止 代码
    任意手机虚拟按键增加方法
    [vijos]1066弱弱的战壕<线段树>
    [bzoj]1059矩阵游戏<二分图匹配*匈牙利算法>
    [bzoj]1053反质数<暴搜>
    [codevs]1250斐波那契数列<矩阵乘法&快速幂>
    [codevs2597]团伙<并查集>
    [noip模拟赛]虫洞holes<SPFA>
  • 原文地址:https://www.cnblogs.com/alexhjl/p/7147067.html
Copyright © 2020-2023  润新知