1、查看docker版本:docker info /docker  version
2、使用 docker run 命令来在容器内运行一个应用程序。如输出helloworld:docker run ubuntu:15.10 /bin/echo "Hello world"

各个参数解析:
      docker: Docker 的二进制执行文件。
      run:与前面的 docker 组合来运行一个容器。
      ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
      /bin/echo "Hello world": 在启动的容器里执行的命令
     以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

3、运行交互式容器

命令:docker run -i -t ubuntu:15.10 /bin/bash  
参数解析:      -t:在新容器内指定一个伪终端或终端。
                        -i:允许你对容器内的标准输入 (STDIN) 进

       运行exit命令或者使用CTRL+D来退出容器

4、启动容器(后台模式)

查看是否有容器在运行:docker ps  -d: 后台运行容器,并返回容器ID

停止容器:docker  stop id

注意:
    CONTAINER ID:容器ID
    NAMES:自动分配的容器名称
    在容器内使用docker logs命令查看容器内的标准输出

5、docker客户端

查看到docker 客户端的所有命令选项:docker
使用命令 docker command --help 更深入的了解指定的 Docker 命令使用方法

6、使用docker容器运行一个web应用

docker pull training/webapp  # 载入镜像
docker run -d -P training/webapp python app.py #在docker容器中运行一个 Python Flask 应用来运行一个web应用
参数说明:
    -d:让容器在后台运行。
    -P:将容器内部使用的网络端口映射到我们使用的主机上
    docker ps #查看正在运行的容器

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32768 上。
docker run -d -p 5000:5000 training/webapp python app.py  #通过 -p 参数来设置不一样的端口

7、查看WEB应用程序容器的进程

docker top [ID或者name]       #查看容器内部运行的进程
docker inspect [ID或者name]        #查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

docker start [ID或者name]     #启动容器
docker rm [ID或者name]      #删除不需要的容器
注意:删除容器时,容器必须是停止状态

8、管理和使用本地 Docker 主机镜像

查看docker镜像:docker images
搜索可用镜像:docker search <image>
拉取镜像:docker pull 镜像名
显示镜像的所有层(layer):docker images --tree
删除一个或多个image:docker rmi  <image ID>

docker inspect : 获取容器/镜像的元数据。

9、创建镜像

(1)从已创建的容器中更新镜像,并且提交这个镜像:先使用镜像创建一个容器,查看容器 id,进入容器,修改容器后使用docker commit来提交容器副本

(2)使用 Dockerfile 指令来创建一个新的镜像:创建Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像,使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像,语法:docker build -t 要创建的目标镜像名 Dockerfile文件路径

使用新的镜像创建容器:docker run -t -i ermao/centos:6.7  /bin/bash
添加镜像标签:docker tag 860c279d2fec ermao/centos:dev
                         860c279d2fec是镜像Id ,用户名称、镜像源名(repository name)和新的标签名(tag)

10、网络端口映射
例:创建一个Python应用的容器:使用-P参数,-P :是容器内部端口随机映射到主机的高端口。-p : 是容器内部端口绑定到指定的主机端口。

11、管理容器

$docker port  [ID或者name]   #查看端口的绑定情况。

容器命名:使用--name标识

$ docker ps     // 查看所有正在运行容器
$ docker stop containerId      // containerId 是容器的ID
$ docker ps -a      // 查看所有容器
$ docker ps -a -q    // 查看所有容器ID
$ docker stop $(docker ps -a -q)    //  stop停止所有容器
$ docker  rm $(docker ps -a -q)     //   remove删除所有容器
$ docker rm $(docker container ls -f "status=exited" -q)   //删除所有停止的容器
$ docker exec  -it “容器ID” bash  //进入容器shell

12、推送镜像
(1)使用tag命令修改为规范的镜像


(2)在docker hub上创建仓库Public Repository,name应与镜像名一致
(3)推送镜像规范:docker push 注册用户名/镜像名:推送之前要登录


(4)查看自己Hub中是否有该镜像

13、Docker run 命令参数及使用 

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    --name="nginx-lb": 为容器指定一个名称;
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    -h "mars": 指定容器的hostname;
    -e username="ritchie": 设置环境变量;
    --env-file=[]: 从指定文件读入环境变量;
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    -m :设置容器使用内存最大值;
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    --link=[]: 添加链接到另一个容器;
    --expose=[]: 开放一个端口或一组端口;

14、创建私有仓库

(1)docker pull registry:latest   拉取私有仓库镜像

(2)docker run -d -p 5000:5000 -v /opt/docker/registry:/tmp/registry registry  启动容器,并将registry的容器存储images的文件夹映射到宿主server的/opt/docker/registry文件夹。(172.18.0.102)

(3)给要Push的镜像打标签:docker tag nginx 172.18.0.102:5000/nginx

(4)在172.18.0.253的”/etc/docker/“目录下daemon.json文件中写入:{ "insecure-registries":["172.18.0.102:5000"] }

(5)重启docker

(6)push镜像:docker push 172.18.0.102:5000/nginx

(7)其他server下载:docker pull 172.18.0.102:5000/nginx
注:172.18.0.102是仓库  
       172.18.0.253是用户开发机

查看仓库里有哪些镜像

(1)web端查看

(2)命令行查看

docker操作笔记的更多相关文章

  1. Docker操作笔记(二)容器

    容器 一.启动容器 启动一个容器有两种方式: 1.基于镜像新键并启动一个容器: 所需要的主要命令为docker run docker run ubuntu:18.04 /bin/echo " ...

  2. Docker操作笔记(四)使用网络

    使用网络 Docker允许通过外部访问容器或容器互联的方式来提供网络服务. 一.外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射. 当 ...

  3. Docker操作笔记(三)数据管理

    数据管理 一.数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和重用 对 数据卷 的修改会立马生效 对 数据卷 的更新,不会 ...

  4. Docker操作笔记(一)使用镜像

    使用镜像 一)获取镜像 从Docker镜像仓库获取命令的格式是: docker pull [选项] [Docker Registry 地址[:端口号]] 仓库名[:标签] 具体的选项可以通过docke ...

  5. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  6. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  7. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  8. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  9. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

随机推荐

  1. H5移动端弹幕动画实现

    思路 把单个内容编辑好,计算自身宽度,确定初始位置 移动的距离是屏幕宽度 js动态的添加css动画函数,将高度.动画移动时间.动画延迟时间都用随机数控制 代码: html骨架结构 (以三个为例,如果觉 ...

  2. C# 使用Quartz.Net

    //首先在Nuget上下载 Quartz包 但是由于我睿智Nuget 怎么也没法用 于是找到了这个 解决方法: 1.点击右侧的设置按钮, 2.弹出窗中左侧树形结构选择“程序包源”,再点击右上方的添加按 ...

  3. ASE19团队项目alpha阶段model组 scrum1 记录

    本次会议于11月1日,19时整在微软北京西二号楼13478召开,持续15分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing Wu, Yu ...

  4. Delphi ActiveX编程

    樊伟胜

  5. 下拉菜单 Spinner 简单纯字符串版

    下拉菜单 Spinner 简单纯字符串版 public class MainActivity extends Activity implements AdapterView.OnItemSelecte ...

  6. Web的了解和servlet的初次见面

    web 相信大家都不陌生,平常我们浏览网页用的都是web服务.互联网起初的web就是非常简单的页面,但是随着客户需求越来越复杂,需要的功能越来越多,我们的服务器端需要处理的请求越来越多,需要区分不同的 ...

  7. MySQL in和limit不能连用的问题

    今天在mysql上处理一个数据量达到千万级的数据库表时,要取出满足条件的数据集,然后存入到mongo数据库,使用JPA提供的Pageble去拿分页,再用多线程去取数据时,发现刚开始效率还可以,肯定比单 ...

  8. oracle 中从一个历史表中查询最新日期数据插入到另一个表中语句

    先从历史表中查询最新的一个语句: select t.id from ( select r.*, row_number() over(partition by r.分组字段 order by r.排序时 ...

  9. Linux的SSH免密登录(一)

    1.从cp/scp命令出发 scp(secure copy)是linux系统下基于ssh登录进行安全的远程文件拷贝的命令. 1. 传递文件到远程 scp local_file remote_usern ...

  10. vim文本编辑器的用法

    vi是一个命令行界面的文本编辑器: vim是vi的改进版: vim不仅有文本编辑:还有文本处理.代码编辑等功能:   1.VIM简介 vim 命令可启动vim编辑器: 一般 vim 文件路径 来使用: ...