• Docker基本命令与使用 —— Docker容器(一)


    一.容器的基本操作

    1. 启动容器

    docker run IMAGE [COMMAND] [ARG...]

    run 在新容器中执行命令

    eg: docker run ubuntu echo 'Hello World'
    输出内容的同时,启动的容器已经停止,这是一个实行单次命令的容器
     

    2. 启动交互式容器

    docker run -i -t  IMAGE /bin/bash

    -i --interactive=true|false 默认是false

    -t --tty=true|false 默认是false
    eg:
    docker run -i -t ubuntu /bin/bash 
    ps -ef 
    exit(退出)

    3.查看容器

    docker ps [-a][-l] 默认显示正在运行中的容器

    -a 列出所有的容器

    -l 列出最新创建的容器
    $ docker inspect [容器id/容器Name]

    4.自定义容器名

    docker run --name=自定义名 -i -t IMAGE /bin/bash

    eg: docker run --name=container01 -i -t ubuntu /bin/bash

     

    5.重新启动停止的容器

    docker start [-i] 容器名(-i已交互的方式)

    eg: docker start -i container01

     

    6.删除停止的容器

    docker rm 容器名/id (只能删除停止的容器)

    二.守护式容器

    1.以守护形式运行容器

    什么是守护式容器? 长期运行的容器,没有交互式的会话,适合应用程序运行
    docker run -i -t IMAGE /bin/bash    
    Ctrl+P Ctrl+Q    (后台运行)    
    docker ps 可以查看到正在运行的容器

    2.附加到运行中的容器

    docker attach 容器名/id

    3.启动守护式容器

    docker run -d 镜像名 [COMMAND][ARG...]

    eg: $ docker run --name dc1 -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"

    (使用shell脚本,当任务执行完,守护式容器依旧会停止)
     

    4. 查看容器日志

    docker logs [-f] [-t] [--tail] 容器名

    -f --follows=true|false 默认为false (一直跟踪日志的变化,并返回结果)

    -t --timestamps=true}false 默认为false (在返回的结果上加上时间戳)
    --tail="all" (返回的结尾处多少数量的日志,不指定则返回所有的日志)
    eg:
    docker logs -tf --tail 10 dc1
    docker logs -tf --tail 0 dc1 (tail 0 只显示最新的日志)
     

    5.查看容器内进程

    docker top 容器名

    6.在运行中的容器内启动新进程

    docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]    (与run命令相似)

    7.停止守护式容器

    docker stop 容器名 (会等待容器的停止) 
    docker kill 容器名 (直接停止容器)

    8.使用Docker帮助文件

    man docker-run    
    man docker-logs    
    man docker-top    
    man docker-exec    
    ...

    三.在容器中部署静态站点

    1.设置容器的端口映射

    run [P] [p]
    -P, --publish-all=true|false 默认为false 为容器暴露的所有端口进行映射
    eg: docker run -P -i -t ubuntu /bin/bash
     
    -p, --publish=[] 能够制定映射容器的哪些端口
    1. containerPort 只制定容器的端口,宿主机的端口随机映射
    eg: docker run -p 80 -i -t ubuntu /bin/bash
    1. hostPort:containerPort 同时制定宿主机端口和容器端口,一一对应
    eg: docker run -p 8080:80 -i -t ubuntu /bin/bash
    1. ip::containerPort
    eg: docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
    1. ip:hostPort:containerPort
    eg: docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
     

    2.Nginx部署流程

    1. 创建映射80端口的交互式容器
    2. 安装Nginx
    3. 安装文本编辑器vim
    4. 创建静态页面
    5. 修改Nginx配置文件
    6. 运行Nginx
    7. 验证网站访问
    docker run -p 80 --name web -i -t ubuntu /bin/bash
    apt-get install -y nginx
    apt-get install -y vim
    mkdir -p /var/www/html
    cd /var/www/html
    vim index.html
    <html>
    <head>
        <title>Nginx in docker</title>
    </head>
    <body>
        <h1>Hello, I'm website in docker!</h1>
    </body>
    </html>
    whereis nginx
    vim /etc/nginx/sites-enabled/default
    修改root 的值为静态网站根目录(/var/www/html)
    cd /    返回根目录
    nginx    运行nginx
    ps -ef    查看nginx进程

    Ctrl+P Ctrl+Q 退出

    docker ps 查看容器映射的端口
    docker port web 查看容器端口映射情况
    docker top web 查看容器中进程运行的情况
     
    1. 通过宿主机的ip地址查看
    curl http://127.0.0.1:*** 查看网站返回内容
    1. 通过容器的ip地址查看
    docker inspect web 获取容器的ip地址
    curl http://容器ip
     
    docker stop web 重启容器
    docker start web
    docker exec web nginx
    docker inspect web
    停止一个容器并重新启动时,原先的ip地址和映射的端口也不一样
  • 相关阅读:
    windows_MySQL安装详解
    nginx 基本安全优化
    pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
    浏览器缓存
    JavaScript迭代
    js模块开发
    关于逻辑删除标识字段value的设定
    c#单例(Singleton)模式实现
    css兼容小问题
    IIS网站不能访问
  • 原文地址:https://www.cnblogs.com/Hai--D/p/6932629.html
Copyright © 2020-2023  润新知