zoukankan      html  css  js  c++  java
  • Docker——基本使用及常用命令

    Docker 是一个开源的应用容器引擎,而一个容器其实是一个虚拟化的独立的环境,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口。

    • Docker 的局限性之一,它只能用在 64 位的操作系统上。

    1.命令介绍

    $ docker --help
    
    管理命令:
      container   管理容器
      image       管理镜像
      network     管理网络
    命令:
      attach      介入到一个正在运行的容器
      build       根据 Dockerfile 构建一个镜像
      commit      根据容器的更改创建一个新的镜像
      cp          在本地文件系统与容器中复制 文件/文件夹
      create      创建一个新容器
      exec        在容器中执行一条命令
      images      列出镜像
      kill        杀死一个或多个正在运行的容器    
      logs        取得容器的日志
      pause       暂停一个或多个容器的所有进程
      ps          列出所有容器
      pull        拉取一个镜像或仓库到 registry
      push        推送一个镜像或仓库到 registry
      rename      重命名一个容器
      restart     重新启动一个或多个容器
      rm          删除一个或多个容器
      rmi         删除一个或多个镜像
      run         在一个新的容器中执行一条命令
      search      在 Docker Hub 中搜索镜像
      start       启动一个或多个已经停止运行的容器
      stats       显示一个容器的实时资源占用
      stop        停止一个或多个正在运行的容器
      tag         为镜像创建一个新的标签
      top         显示一个容器内的所有进程
      unpause     恢复一个或多个容器内所有被暂停的进程

    2.服务管理

    • CentOS 6.5

    service docker start       # 启动 docker 服务,守护进程
    service docker stop        # 停止 docker 服务
    service docker restart     # 重启 docker 服务 chkconfig docker on # 设置为开机启动
    •  CentOS 7

    systemctl start docker    # 启动 docker 服务,守护进程
    systemctl stop docker     # 停止 docker 服务
    systemctl restart docker # 重启 docker 服务
    chkconfig docker on        # 设置为开机启动

    3.常用命令

    • 查看版本

    docker version

     

    • 查看当前docker所有镜像

    docker images

     

    • 查看状态

    service docker status
    • 查看信息

    docker info

      

    4.镜像管理

    • 在线搜索镜像

    docker search tomcat

     start代表受欢迎程度。OFFICIAL代表官方版本

    • 拉取镜像

    # docker pull [镜像名称]:[版本]
    docker pull tomcat:7
    • 上传镜像

    docker push wcjiang/nginx-test:lastest
    • 通过dockerfile创建镜像
    docker build -t tomcat8:v1 .
    • 通过容器创建镜像 

    docker commit -m="First Docker" -a="wcjiang" a6b0a6cfdacf wcjiang/nginx:v1.2.1

    上面命令参数说明:

    1. -m 提交的描述信息
    2. -a 指定镜像作者
    3. a6b0a6cfdacf 记住这个是容器id,不是镜像id
    4. wcjiang/nginx:v1.2.1 创建的目标镜像名
    • 为镜像打标签

    docker tag wcjiang/nginx:v1.2.1 wcjiang/nginx-test:lastest

    5.容器管理

    • 在容器中运行hello world

    docker run centos echo "hello word"
    • 在容器中安装wget程序

    docker run centos yum install -y wget    
    • 查看所有的容器

    docker ps      #列出包括未运行的容器
    docker ps -a   #查看所有容器(包括正在运行和已停止的),返回列表
    docker ps -aq   #只返回容器id

    • 查看容器日志

    docker logs -f -t --since="2020-01-16" --tail=500 bsm   查看bsm容器日志
    • 停止容器

    docker stop <CONTAINER ID>    #停止某个容器
    docker stop $(docker ps -aq)   #停止所有的容器
    • 启动容器

    docker start <CONTAINER ID>
    • 删除容器

    docker rm <CONTAINER ID>     #删除某个容器
    docker rm $(docker ps -aq)  #删除所有容器
    • 删除镜像

    docker rmi <IMAGE NAME>        #按容器名称删除
    docker rmi -f <IMAGE ID> #按容器ID删除
    docker rmi $(docker images -q)   #删除所有的镜像
    • 进入容器

    docker exec -it <CONTAINER ID> bash

    注:这个bash退出也不会影响之前 docker run 启动的 bash/,按【Ctrl + D】键退出bash

    • 运行容器(nginx)

    # 下面的命令将本地文件中的 nginx.conf 配置文件挂载到容器,并且将要展示的静态页面也挂载到容器。
    docker run --name my-nginx  
        -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro 
        -v /some/html:/usr/share/nginx/html:ro 
        -p 8080:80 
        -d nginx

    上面参数说明:

    1. -v:设置挂载路径,语法为 -v host dir:container dir[:ro|rw]
    2. --name:为容器取一个名字
    3. -p:参数语法为 -p host port:container port; -p 8080:80 将主机上的8080端口绑定到容器上的80端口,因此在主机中访问8080端口时其实就是访问 nginx 容器的80端口
    4. -d:后台运行容器
    • 运行容器(mysql)

    docker run --name my-mysql  
    -p 3306:3306  
    -v $PWD/conf/my.cnf:/etc/mysql/my.cnf  
    -v $PWD/logs:/logs  
    -v $PWD/data:/mysql_data  
    -e MYSQL_ROOT_PASSWORD=123456  
    -d mysql:5.7

    上面参数说明:

    1. -p 3306:3306:将容器的3306端口映射到主机的3306端口
    2. -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
    3. -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
    4. -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
    5. -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
    • 检查容器

    docker inspect 容器名称

  • 相关阅读:
    回发保留前台添加的html
    关于NBear数据访问层IDData
    使用js把数字转化成会计格式
    二次注入
    .htaccess利用与Bypass方式总结
    HTTPoxy漏洞(CVE-2016-5385)
    JAVA并行程序基础一
    队列-数组实现
    Vuex
    稀疏数组
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/12217032.html
Copyright © 2011-2022 走看看