zoukankan      html  css  js  c++  java
  • docker基础总结

    搜索镜像
    docker search ubuntu 搜索ubuntu的Docker镜像

    搜索结果单个单词ubuntu这样的镜像,被称为基础镜像或根镜像,这些基础镜像由 Docker 公司创建
    搜索结果tianon/ubuntu 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀 username/ 来指定使用某个用户提供的镜像,比如 tianon 用户

    拉取官方最新版的镜像
    docker pull ubuntu:latest,其中的latest是一个标签(tag),表示是当前最新版本ubuntu

    查看本地镜像
    docker images

    查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下

    查看镜像、容器、数据卷所占用的空间
    docker system df

    显示虚悬镜像:
    docker image ls -f dangling=true

    根据仓库名列出镜像
    docker image ls ubuntu

    列出特定的某个镜像,也就是说指定仓库名和标签
    docker image ls ubuntu:16.04

    删除本地的镜像
    docker image rm [选项] <镜像> <镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要
    删除有关联的镜像
    docker image rm -f


    查看当前有哪些容器正在运行
    docker ps
    查看所有容器
    docker ps -a

    docker run --name webserver -d -p 80:80 nginx
    用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口

    docker exec 命令进入容器
    docker exec -it webserver bash

    容器中安装软件(比如vim)
    apt-get update
    apt-get install -y vim

    将容器保存为镜像(实际中一般不这么操作)
    docker commit 的语法格式为:
    docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
    示例:docker commit
    --author "Tao Wang <twang2218@gmail.com>"
    --message "修改了默认网页"
    webserver
    nginx:v2
    --author 是指定修改的作者,而 --message 则是记录本次修改的内容

    Dockerfile 定制镜像
    docker build [选项] <上下文路径/URL/->
    示例:
    mkdir mynginx
    cd mynginx
    touch Dockerfile
    其内容为:
    FROM nginx
    RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
    构建
    docker build -t nginx:v3 .
    . 表示当前目录,而 Dockerfile 就在当前目录

    启动一个允许交互但命令不保存的容器
    docker run -it --rm ubuntu:16.04 /bin/bash
    docker run 就是运行容器的命令,--rm:这个参数是说容器退出后随之将其删除,启动一个 bash 终端,允许用户进行交互

    启动一个 bash 终端,允许用户进行交互。
    docker run -t -i ubuntu:14.04 /bin/bash

    后台运行,加-d 参数运行容器
    docker run -d ubuntu:17.10 /bin/sh

    查看容器信息。
    docker container ls

    终止容器
    docker container stop

    查看包括终止状态的容器
    docker container ls -a

    重新启动
    docker container start

    进入容器
    docker exec -it 容器ID bash

    导出容器
    docker export 容器ID > ubuntu.tar
    导入容器快照
    cat ubuntu.tar | docker import - test/ubuntu:v1.0

    删除处于终止状态的容器
    例如
    docker container rm trusting_newton
    删除运行中的容器,添加 -f 参数

    清理掉所有处于终止状态的容器
    docker container prune

    Docker Hub仓库
    注册Docker 账号,这样可用将自己的镜像推送到 Docker Hub
    登录
    docker login
    退出
    docker logout

    推送镜像
    docker tag ubuntu:17.10 用户名/ubuntu:17.10

    私有仓库
    使用官方的 registry 镜像来启动私有仓库,默认仓库会被创建在容器的 /var/lib/registry 目录下
    docker run -d -p 5000:5000 --restart=always --name
    registry registry

    将镜像标记
    docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
    示例:docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
    上传标记的镜像
    示例:docker push 127.0.0.1:5000/ubuntu:latest
    用 curl 查看仓库中的镜像
    curl 127.0.0.1:5000/v2/_catalog

    比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址
    systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
    {
    "registry-mirror": [
    "https://registry.docker-cn.com"
    ],
    "insecure-registries": [
    "192.168.199.100:5000"
    ]
    }


    数据卷
    创建一个数据卷
    docker volume create my-vol

    查看所有的 数据卷
    docker volume ls

    查看指定 数据卷 的信息
    docker volume inspect my-vol

    示例:
    创建一个名为web的容器,并加载一个 数据卷 到容器的 /webapp 目录
    docker run -d -P
    --name web
    # -v my-vol:/wepapp
    --mount source=my-vol,target=/webapp
    training/webapp
    python app.py

    查看数据卷的具体信息
    示例:
    查看 web 容器的信息
    docker inspect web

    删除数据卷
    docker volume rm my-vol
    删除容器的同时移除数据卷,在删除容器的时候使用
    docker rm -v
    无主的数据卷可能会占据很多空间,要清理请使用以下命令
    docker volume prune


    外部访问容器
    映射到指定地址的指定端口
    示例:
    可以使用 ip:hostPort:containerPort 格式指定映射使用一个特定地址,比如 localhost 地址 127.0.0.1
    docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

    映射到指定地址的任意端口
    示例:
    使用 ip::containerPort 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。
    docker run -d -p 127.0.0.1::5000 training/webapp python app.py

    查看映射端口配置
    示例:
    使用 docker port 来查看当前映射的端口配置,也可以查看到绑定的地址
    docker port nostalgic_morse 5000

    docker 三剑客之machine:
    可能会报virtualbox的相关错误:https://www.jianshu.com/p/20e605b1628a
    安装Virtualbox驱动
    1、配置Yum源
    [root@master ~]# vim /etc/yum.repos.d/virtualbox.repo
    [virtualbox]
    name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
    baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
    2、查看可安装的版本
    [root@master ~]# yum search VirtualBox #查找具体安装版本
    [root@master ~]# yum install -y VirtualBox-5.2 #安装
    3、加载virtualbox
    [root@master ~]# /sbin/vboxconfig #重新加载virtualbox服务
    #如果内核版本不一致,会出现上面的报错,需要安装相同的内核版本
    4、安装对应的内核版本
    [root@master ~]# rpm -ivh kernel-devel-3.10.0-693.el7.x86_64.rpm
    [root@slave1 ~]# yum install gcc make perl -y
    下载kernel的rpm包:http://www.rpmfind.net/linux/RPM/centos/7.5.1804/x86_64/Packages/kernel-devel-3.10.0-862.el7.x86_64.html
    然后再重新创建 Docker 主机
    如果报错:Running pre-create checks...
    Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
    需要在vmware虚拟机设置-处理器-虚拟化打开

  • 相关阅读:
    active learning
    PLS-00201: identifier 'SYS.DBMS_CUBE_EXP' must be declared
    浅谈防火墙
    yum安装nginx错误处理
    简单的SQL注入
    mysql之查询语句练习题
    Linux权限和用户管理
    Linux文件及目录查找命令~~续集
    linux文件及目录查找命令
    linux文件管理练习题
  • 原文地址:https://www.cnblogs.com/lndr/p/10382169.html
Copyright © 2011-2022 走看看