• 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地址和映射的端口也不一样
  • 相关阅读:
    Leetcode Excel Sheet Column Number
    AlgorithmsI PA2: Randomized Queues and Deques Subset
    AlgorithmsI PA2: Randomized Queues and Deques RandomizedQueue
    AlgorithmsI PA2: Randomized Queues and Deques Deque
    AlgorithmsI Programming Assignment 1: PercolationStats.java
    hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题
    hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对
    hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
    hdu多校第三场 1007 (hdu6609) Find the answer 线段树
    hdu多校第三场 1006 (hdu6608) Fansblog Miller-Rabin素性检测
  • 原文地址:https://www.cnblogs.com/Hai--D/p/6932629.html
Copyright © 2020-2023  润新知