zoukankan      html  css  js  c++  java
  • docker基本命令

    ubuntu安装官方提供版
    详细步骤:
    查看https是否存在
    root@local:/# cd usr/lib/apt/methods/https
    添加Docker的apt仓库
    root@local:/# echo deb https://get.docker.com/ubuntu docker main>/etc/apt/source.list.d/docker.list
    添加仓库的钥匙
    root@local:/# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
    安装docker
    root@local:/# apt-get update
    root@local:/# apt-get install -y lxc-docker
    简易安装步骤:
    root@local:/# sudo apt-get install -y curl
    root@local:/# wget -qO- https://get.docker.com/ | sh
    当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令

    docker组件
    docker仓库配置文件:
    wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/
    vim docker-ce.repo
    %s@https://download.docker.com/@https://mirrors.tuna.tsinghua.edu.cn/docker-ce/@
    docker配置文件:
    /etc/docker/daemon.json
    docker镜像加速:
    docker cn
    {
    "registry-mirrors":["https://registry.docker-cn.com"]
    }


    启动docker 后台服务
    root@local:/# service docker start
    查看docker服务
    root@local:/# ps -ef |grep docker
    测试是否成功:
    root@local:/# docker version

    创建启动容器
    $docker run IMAGE [COMMAND] [ARG]...
    IMAGE 启动容器使用的镜像
    COMMAND 容器启动后执行的命令
    ARG 容器启动后执行的参数

    $docker run ubuntu echo "hellow world" 启动一个容器


    创建进入交互式容器
    $docker run [--name] -i -t ubuntu /bin/bash 启动容器自定义命名的容器
    --name 自定义容器名
    -i 告诉守护进程,为容器始终打开标准输入
    -t 告诉docker为容器分配一个伪tty终端,提供交互式shell

    例:$docker run --name contain01 -i -t ubuntu /bin/bash
    此时创建了一个名为contain01的交互式容器
    ps -ef 查看容器状态
    exit 退出

    转守护形式运行容器(后台模式):
    Ctrl+P+Q 退出交互式,转为后台

    进入守护形式的容器:
    $docker attach 容器名容器ID

    创建守护式容器
    $docker run [--name] -d IMAGE [COMMAND] [ARG]...
    -d 以后台形式运行命令

    例:$docker run --name dc01 -d ubuntu /bin/sh -c "while true; do echo hellow world;sleep 1 done"


    添加新进程
    $docker exec [-d] [-i] [-t] 容器id容器名 [COMMAND] [ARG]...

    例:$docker exec -i -t dc01 /bin/bash 添加了一个/bin/bash进程


    设置容器映射
    -P为容器所有暴露端口映射
    $docker run -P -i -t ubuntu /bin/bash

    -p指定映射
    第一种:只指定容器端口,宿主机端口为随机映射
    $docker run -p 80 -i -t ubuntu /bin/bash
    第二种:指定宿主机端口和容器端口
    $docker run -p 8080:80 -i -t ubuntu /bin/bash
    第三种:指定ip和容器端口
    $docker run -p 127.0.0.1:80 -i -t ubuntu /bin/bash
    第四种:指定ip及宿主机端口 和 容器端口
    $docker run -p 127.0.0.1:8080:80 -i -t ubuntu /bin/bash
    查看容器映射情况
    $docker port 容器ID容器名字



    查看容器内部运行情况
    $docker logs [-f] [-t] [--tail] 容器名容器ID
    -f 一直跟踪日志变化,返回结果
    -t 返回结果中加时间戳
    --tail 返回多少数量日志,默认全部

    查看容器进程:
    $docker top 容器id容器名


    查看容器
    $docker ps [-a] [-l]
    $docker ps 查看正在运行中的容器
    $docker ps -a 查看全部容器
    $docker ps -l 列出最新创建的容器


    查看容器
    $docker inspect [容器ID容器名字]
    查看容器配置信息


    重新启动已经停止的容器
    $docker start -i contain01


    停止守护容器
    $docker stop 容器ID容器名字
    发送停止信号,执行完当前任务后停止
    $docker kill 容器ID容器名字
    直接杀死容器


    删除已经停止的容器
    $docker rm 容器id容器名


    *************************
    使用docker帮助文件 *
    例:$man docker-run *
    $man docker-logs *
    .... *
    *************************


    查看镜像
    $docker images [选项] [仓库]
    -a 显示所有镜像,默认不显示中间层镜像
    -f 显示的过滤条件
    -no-trunc 不使用截断形式显示
    -q 只显示镜像唯一id


    查看镜像配置信息
    $docker inspect [镜像ID镜像仓库名:标签名]


    删除镜像
    $docker rmi [选项]
    -f 强制删除

    例:$docker rmi ubuntu:16.04
    (高危操作)删除所有镜像
    $docker rmi $(docker images -q ubuntu)

    查找镜像
    $docker search -s 3 ubuntu
    三星以上的全部镜像,最多显示25个


    拉取镜像 docker hub
    $docker pull ubuntu:14.04
    拉取ubuntu14.04镜像

    换源:
    docker加速器获取镜像链接
    $sudo vim /etc/default/docker
    添加DOCKER_OPTS = "镜像链接"


    推送镜像 docker hub
    $docker push 账户名/nginx


    构建镜像
    第一种:通过容器构建
    $docker commit [选项]
    -a 记录镜像作者
    -m 记录镜像信息
    -p 使容器不暂停


    第二种:通过Dockerfile文件构建(推荐)
    $docker build [选项] 文件路径
    --force-rm
    --no-cache
    --pull
    -q
    --rm
    -t

    例:
    创建一个文件输入
    #First Dockerfile
    FROM ubuntu:16.04
    MAINTAINER dormancypress "账户名@outlook.com"
    RUN apt-get update
    RUN apt-get install -y nginx
    EXPOSE 80

    进入到文件目录,构建镜像
    $docker build -t='当前目录名/文件名'

  • 相关阅读:
    Java Iterator模式
    .NET中的异常和异常处理
    .NET 中的DateTime
    .NET中的StringBuilder
    .NET中的计时器控件Timer
    .NET中的字符串你了解多少?
    必须会的SQL语句(八)数据库的完整性约束
    必须会的SQL语句(七)字符串函数、时间函数
    必须会的SQL语句(六)查询
    必须会的SQL语句(五)NULL数据处理和类型转换
  • 原文地址:https://www.cnblogs.com/7134g/p/11510460.html
Copyright © 2011-2022 走看看