“build once ,run anywhere

                                      一次构建,随处运行

 

查看docker版本选择(列出)

#yum list docker-ce --show-duplicates

#docker  info               

//查看详细信息

# docker login dcoker.io

//登陆docker.ios(dockerhub官网)

#docker tag  6dbb9cc54074  docker.io/likun0520/alpine:v3

//加标签

#docker push ID (注意ID中要是登陆仓库的用户名)

//上传到仓库 例子:docker push likun123123/alpine:v1 (likun123123是hub上的账号名)

#docker rmi   -f ID

 #删除镜像(强制:-f)

 

                                     容    器


#列出本地容器进程

#docker ps     查看容器(活的)

#docker ps -a  可以查看死的和活的

#启动容器(run)

# docker run -ti likun123123/alpine:v1 /bin/sh

//交互式启动容器,一旦退出,容器也会停止

# docker run --rm likun123123/alpine:v1 /bin/echo hello

//加--rm意思是,运行容器后自动退出 ,这里是让容器输出hello后,自己退出

# docker run -d --name myalpinel likun123123/alpine:v1 /bin/sleep 300

//“-d”是让他在后台运行,“--name”给容器建立一个名,“/bin/sleep 300”让容器运行5分钟,运行过后,容器会自己挂掉。

注意小知识点:docker里容器运行,实际上在宿主机上也可以看到容器的进程(ps aux|grep /bin/sleep)

# docker exec -ti 6dbb9cc54074 /bin/sh

//使用交互型方式进入容器中去

#docker stop 容器的ID

//停止容器

#docker rm  容器名 (-f:强制删除运行中的容器)

//通过docker ps -a 查出容器名 ,删除容器

-----------------------------------------------------------实际使用中docker基本操作------------------------------

补充:使用循环删除宿主机上所用已经退出的容器

# for i in `docker ps -a |grep -i exit|awk '{print $1}'`;do docker rm -f $i;done

//经常用到的,非常实用。

 

补充:通过交互式方式进入容器,添加修改或者删除保存的一些文件,等容器消亡后,也会随着消失。原因:修改只是在容器的读写层修改,是不能固化的。如若想保存自己在容器中修改的内容,需要在容器运行中,再另新建一个images(镜像),类似虚拟机快照的操作,其实就是再创建一个镜像即可。

# docker commit -p myalpine likun123123/alpine:v2

//创建镜像:“myalpine”是容器名,后面是新镜像的标签

 

补充:导入与导出镜像基本流程

# docker images

//查看要导出的镜像

# docker save af7f24ec059a > alpine:v1.txt.tar

//使用“save”导出镜像到当前目录下名为alpine:v1.txt.tar

# docker rmi -f af7f24ec059a

//删除镜像

# docker load < alpine\:v1.txt.tar

//在当前目录下导入刚刚导出的包

# docker tag

//给导入的包做标签(新导入的包,会没有标签,需要自己做标签)

 

补充:查看容器的日志

# docker ps -a

//先确认要查询容器的ID号

# docker logs 容器的ID号

//使用“logs”查询容器的日志(如果后加-f,将动态输出日志)

-----------------------------------------------------实际使用中高级(重要的)操作--------------------------------

Docker高级操作:

  1,映射端口

  2,挂载数据卷

  3,传递环境变量!!!!

  4,容器内安装软件工具

1,启动nginx容器并映射指定端口

# docker run --rm --name mynginx -d -p81:80 likun123123/nginx:v1

//使用-p来映射端口,“:”左边是宿主机的端口,右边是容器内映射的端口

2,将文件挂载到nginx容器里

 例子:将百度网页链接到nginx里

# mkdir html

# wget www.baidu.com -O index.html

# docker run -d --rm --name nginxmy -d -p82:80  -v/root/html:/usr/share/nginx/html likun123123/nginx:v1

//注意端口不要冲突,“-v”左边是宿主机百度网页的目录,右边是容器里nginx的网页目录

# docker ps -a

查看挂载的详细信息

# docker inspect 4f2d55b3184b |grep share

3,传递环境变量!!!!!!

非常重要,生产环境下经常用到,因为一旦可以给容器加环境变量,就相当于云原生一样,操作非常简单,但是经常用到,所以它比上两个高级操作还要重要

# docker run --rm -e E_OPS=abc likun123123/nginx:v1 printenv

//这里给容器传递环境变量,用”-e” 后面加变量,可以-e对应多个变量,printenv是输出打印出变量(可以不加,主要方便看)

4,容器内部安装工具

首先进入容器里(mynginx是容器名,/bin/bash是命令)

# docker exec -it  mynginx  /bin/bash

进去后,什么系统做什么动作(yum/apt-get/apt)

装完后,要是固化,还是需要做一个镜像,最好上传到dockerhub库里

# docker commit -p mynginx  likun123123/nginx:v1.1

# docker push likun123123/nginx:v1.1

以上是docker在实际工作中经常遇到的操作!!!要牢记!!!!


       帮    助
docker中使用的命令参数大集(#docker --help)

Commands:
  attach  Attach local standard input, output, and error streams to a running container
  build     Build an image from a Dockerfile
  commit    Create a new image from a container's changes
  cp            Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff          Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec         Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info          Display system-wide information
  inspect     Return low-level information on Docker objects
  kill          Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save      Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start         Start one or more stopped containers
  stats        Display a live stream of container(s) resource usage statistics
  stop         Stop one or more running containers
  tag           Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top          Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Docker工作管理中实用操作的更多相关文章

  1. git的工作管理和基础操作

    git的工作管理和基础操作 在本地创建git仓库管理我们的代码 初次使用git,先在本地配置一些基础信息 $ git config -l $ git config --global user.name ...

  2. Linux中的工作管理(Job Control )

    以前使用Linux老是会不小心按下Ctrl + z,然后就出现看不懂的情况,以为程序突然就没了,今天专门研究了下Linux下的几个快捷键和工作管理. 其中找到一篇很不错的文章,大部分是里面转载的. 原 ...

  3. 在TFS 2013的敏捷组合管理中添加积压工作

    在TFS提供的三套默认模板中,组合管理(Portfolio Management)只包含功能(Feature)和要求这个两个积压工作.你可以参考下面的文档,学会如何在积压工作中添加额外的工作项类型. ...

  4. docker 镜像管理操作

    镜像特点 1. 分层存储的文件 2.一个软件运行环境 3.一个镜像可以创建多个容器 4.一种标准交付 5.不包含Linux内核而又精简的Linux操作系统 6.不是一个单一的文件而是由多层构成的,可以 ...

  5. 004.Docker镜像管理

    一 镜像基本操作 镜像是一个包含程序运行必要依赖环境和代码的只读文件,其本质是磁盘上一系列文件的集合.它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 1 ...

  6. Docker学习笔记之使用 Docker Compose 管理容器

    0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...

  7. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  8. docker容器管理-含静态Ip(10)

    docker run命令详解 docker run -t #表示分配一个伪终端 -i #表示让容器的标准输入打开,不跟这个参数容器启不来 -d #后台运行 -P #dockerfile中EXPOSE ...

  9. 在Spring Boot中使用Docker在测试中进行高级功能测试

    最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...

  10. C#开发微信门户及应用(36)--微信卡劵管理的封装操作

    前面几篇介绍了微信支付方面的内容,本篇继续微信接口的一些其他方面的内容:卡劵管理.卡劵管理是微信接口里面非常复杂的一个部分,里面的接口非常多,我花了不少时间对它进行了封装处理,重构优化等等工作,卡劵在 ...

随机推荐

  1. ORM数据库查询优化only与defer(select_related与prefetch_related)

    目录 一:数据库查询优化 1.ORM语句特点 2.only 3.defer 4.only与defer区别 5.select_related与prefetch_related 6.select_rela ...

  2. BeanShell 后置处理器/前置处理器实现urldecode 解码

    1.使用正则/Json提取器提取需要解码的值 2.在提取的接口中添加后置处理器或在下个调用接口中添加前置处理器 3.编码实现 String token = vars.get("access_ ...

  3. C语言 根据掩码计算网段的起止ip

    原文地址:https://www.yuque.com/docs/share/85a26263-484a-42f6-880b-2b511ae1bd20?# 根据ipv4掩码计算 #include < ...

  4. 【Redis场景2】缓存更新策略(双写一致)

    在业务初始阶段,流量很少的情况下,通过直接操作数据是可行的操作,但是随着业务量的增长,用户的访问量也随之增加,在该阶段自然需要使用一些手段(缓存)来减轻数据库的压力:所谓遇事不决,那就加一层. 在当前 ...

  5. 3、数组、集合、Lambda、Stream与Optional类

    一.数组: 数组保存在JVM堆内存中 1.数组的创建: (1).一维数组创建方式一: //一维数组方式一 Integer[] array01 = {1,2,3}; System.out.println ...

  6. WCH沁恒 CH37系列芯片选型以及常见问题的处理(CH376/CH378)

    选型 型号 接口 功能 备注 电源 CH372 并口 USB_Device 全速 USB 设备接口,兼容 USB V2.0 3.1-3.6 4.2-5.4 CH374 SPI/并口 Host/Devi ...

  7. MasaFramework -- i18n (国际化)

    概念 作为一个普通开发者, 我们负责的项目的使用群体大多数是本国的人民, 但不可避免的也有一些做外贸的业务或者给外企做的项目, 这个时候就要求我们的项目有服务全球客户的能力, 而一个支持国际化能力的框 ...

  8. [深度学习] tf.keras入门5-模型保存和载入

    目录 设置 基于checkpoints的模型保存 通过ModelCheckpoint模块来自动保存数据 手动保存权重 整个模型保存 总体代码 模型可以在训练中或者训练完成后保存.具体文档参考:http ...

  9. [cocos2d-x]关于坐标系

    本文从cocos2dx官网看到,搬运过来学习一下. cocos2d-x3.X的坐标系 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系中定义右手系原点在左下角, ...

  10. Cocos Creator 打包原生 Android 包该如何选择 NDK 版本?

    大家好,我是晓衡! 记得前段时间,在一些群里看到有小伙伴说 Cocos Creator 打包 Android 原生 APK 有问题:一种是构建失败,一种是运行起来报错. 晓衡也是有好长一段时间,没有碰 ...