zoukankan      html  css  js  c++  java
  • Dokcer的一些命令:

    Dokcer的一些命令:

    启动Docker:systemctl start docker

    重启Docker:systemctl restart docker

    查看Docker版本:docker version

    查看docker系统信息:docker info

    运行Hello-world映像:docker run hello-world

    在容器内运行一个应用程序并输出hello world:docker run ubuntu:15.10 /bin/bash “Hello world”      注:Hello world不能加!

    运行交互式的容器:docker run -i -t ubuntu:15.10 /bin/bash            

        cat /proc/version    查看当前系统的版本信息

        ls     查看当前目录下的文件列表

        exit或者ctrl + d   退出容器   

    创建一个以进程方式运行的容器:docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    查看是否有容器在运行: docker ps  或者  docker container ps  或者   docker container ls

    查看所有的容器:docker ps –a

    查看最后一次创建的容器:docker ps -l 

    停止容器:docker stop 容器ID或容器名称

    启动一个已停止的容器: docker start 容器ID

    重启容器:docker restart容器ID

    拉取镜像(比如ubuntu):docker pull ubuntu

    启动容器:docker run –it Ubuntu /bin/bash

    后台运行容器:docker run -itd --name ubuntu-test ubuntu /bin/bash

        加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec

        -i交互式操作  

        -t在新容器内指定一个伪终端或终端

    进入容器:docker attach 容器ID                     不推荐,exit后容器就会停止

                     docker exec –it 容器ID /bin/bash    推荐,exit后容器不会停止

    导出容器:docker export 容器ID > 目录/文件名

    导入容器快照:cat ubuntu.tar | docker import – test/ubuntu:vl   也可通过URL或某个目录来导入

    删除容器:docker rm –f 容器ID     -f是强制删除

    清除所有处于停止状态的容器:docker container prune

    使用docker构建一个web应用程序(在docker容器中运行一个python flask应用来运行一个web应用):

          载入镜像:docker pull training/webapp

          运行容器:docker run –d –P training/webapp python app.py

                -P:将容器内部使用的网络端口映射到我们使用的主机上

    设置端口-p:docker run –d –p 5000:5000 training/webapp python app.py

    指定容器绑定的网络地址:docker run –d –p 127.0.0.1:5001:5000 training/webapp python app.py

    查看容器端口映射:docker port 容器ID或name

    查看容器的运行日志: docker logs –f 容器ID或name   -f作用是像tail –f一样来输出

    查看容器内部运行的进程:docker top 容器ID或name

    实时显示每个容器资源使用情况:docker stats   (Docker自带的监控命令:ps top stats)

    查看容器的底层信息(配置和状态信息):docker inspect 容器ID或name

    列出镜像列表:docker images     运行容器时,不指定镜像的版本标签,将默认使用latest镜像

    获取一个新的镜像:docker pull 镜像Repository:TAG(即镜像仓库源:标签)

    查找镜像:docker search 镜像name(即镜像仓库源名称)

    拖取镜像:docker pull 镜像name

    使用镜像:docker run 镜像name

    删除镜像:docker rmi 镜像name  如果有容器在引用镜像,则无法删除

    创建镜像:

        更新镜像:docker commit -m="has update" -a="lisa" d9ce06049ea5 spring/ubuntu:v2

        创建一个新的镜像:新建Dockerfile 文件,内容如下

    FROM    centos:6.7
    MAINTAINER      Fisher "fisher@sudops.com"
     
    RUN     /bin/echo 'root:123456' |chpasswd
    RUN     useradd runoob
    RUN     /bin/echo 'runoob:123456' |chpasswd
    RUN     /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
    EXPOSE  22
    EXPOSE  80
    CMD     /usr/sbin/sshd -D

    构建镜像:docker bulid –t 目标镜像名:镜像标签 Dockerfile文件所在目录(当前目录就用.)

    设置镜像标签:docker tag  镜像ID  [用户名称/]镜像源名:新的标签名

    Docker容器互联:(docker连接会场景一个父子关系)

    新建网络,创建该网络的两个容器,两个容器间可以互联

    新建网络:docker network create –d bridge test-net    -d指定docker网络类型

    查看网络:docker network ls

    运行一个容器并连接到新建的test-net网络:docker run –itd --name test1 –network test-net ubuntu /bin/bash

    运行另个容器并连接到新建的test-net网络:docker run –itd --name test2 –network test-net ubuntu /bin/bash

    进入容器1:docker exec –it test1 /bin/bash

    在容器1中ping容器2:ping test2

    若不能使用ping,需更新安装apt-get update —— apt install iputils-ping —— 提交容器到镜像 ——以新镜像重新运行以上2个容器

    查看容器DNS配置信息:docker run -it --rm ubuntu cat etc/resolv.conf

    Docker仓库管理:

    登录Docker Hub公共仓库:docker login

    退出仓库:docker logout

    查找镜像:docker search 镜像名

    拉取镜像:docker pull 镜像名

    推送镜像(用户登录后,将自己的镜像推送到Docker Hub):tag 后再 push

    使用Dockerfile定制一个nginx镜像:

    在一个空目录下,新建一个Dockerfile文件,内容如下:

    FROM nginx

    RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html

    docker build –t 镜像名:标签(nginx:test)  .

    指令:

    COPY:复制命令,从上下文目录中复制文件或者目录到容器里指定路径。

    ADD:和COPY类似,会自动解压缩tar压缩文件

    CMD:类似于RUN,在docker run 时运行,为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

    ENTRYPOINT:类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效

    ENV:设置环境变量

    ARG:构建参数,与ENV作用一致。不过作用域不一样。ARG 设置的环境变量只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。

    VOLUME:定义匿名数据卷

    EXPOSE:声明端口

    WORKDIR:指定工作目录。会在构建镜像的每一层中都存在。这个目录需提前创建好

    USER:用于指定执行后续命令的用户和用户组

    HEALTHCHECK:用于指定某个程序或者指令来监控 docker 容器服务的运行状态

    ONBUID:用于延迟构建命令的执行

    创建网络:docker network create –d bridge test-net   (或者--driver bridge)

    运行容器指定自建网络:docker run --name nginx –network=test-net –itd nginx    

    运行容器指定默认网络:docker run --name nginx --net bridge –itd nginx    连接到默认的bridge(网桥docker0)上

    对于未指定网络的容器,可以添加进网络:docker network connect test-net 容器ID

    查看网桥上挂载的接口:brctl show  (和容器内的网卡是一对的,所以显示的值是不一样的)

    对运行的容器进行挂载:docker run -d -p 80:80 -v /home/spring/docker:/usr/local/apache2/htdocs:ro httpd

        /usr/local/apache2/htdocs 就是 apache server 存放静态文件的地方;如果加上:ro表明文件只读权限

    在虚拟机中测试连接:curl 127.0.0.1:80   相当于在本地hosts文件指定一个域名,具有优先访问权.(curl -x 127.0.0.1:80这个方法适用于生产环境的服务器来测试自己做为代理商访问是否正常)

  • 相关阅读:
    Excel设置下拉选项的方法
    Codeforces Round #218 (Div. 2) (线段树区间处理)
    手动配置S2SH三大框架报错(一)
    一种H.264高清视频的无参考视频质量评价算法(基于QP和跳过宏块数)
    UIWebView的使用
    AFNetworkIng的简单使用
    虚线边框的实现
    iOS实现简单时钟效果
    hdu 3966 Aragorn's Story
    Count on a tree
  • 原文地址:https://www.cnblogs.com/spring1122/p/12408419.html
Copyright © 2011-2022 走看看