docker学习笔记

Docker

阿里云加速器:https://cr.console.aliyun.com/#/accelerator

使用加速器:http://www.cnblogs.com/weschen/p/7134462.html

全面介绍docker的一个博客:http://www.cnblogs.com/CloudMan6/tag/Docker/

http://blog.csdn.net/CloudMan6/article/details/70482298

参考资料:http://www.runoob.com/docker/docker-tutorial.html

https://blog.csphere.cn/archives/22

  • 删除所有运行中的容器$ docker kill $(docker ps -q)
  • 删除所有停止的容器$ docker rm $(docker ps -a -q)
  • 删除所有没有tag和挂起的镜像docker rmi $(docker images -q -f dangling=true)
  • 删除所有镜像docker rmi $(docker images -q)

1、 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

2、  Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

3、  Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

4、 通过客户端client与服务器host上的docker守护进程通信

5、 Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker

6、 Docker 要求 Ubuntu 系统的内核版本高于 3.10(通过 uname -r 命令查看你当前的内核版本)

7、 Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

8、  docker run ubuntu:15.10 /bin/echo "Hello world"

Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

9、 docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力;-t:在新容器内指定一个伪终端或终端。-i:允许你对容器内的标准输入 (STDIN) 进行交互

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

10、 创建一个以进程方式运行的容器(后台模式)docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
通过 docker ps 来确认容器有在运行
使用docker logs id/name 命令,查看容器内的标准输出
使用 docker stop id/name命令来停止容器

11、            Docker run –d –P : -P:将容器内部使用的网络端口映射到我们使用的主机上,通过docker ps可以查看端口映射情况,也可通过docker port id/name查看容器的端口映射情况

                       

容器中的5000端口对应主机的32769,访问时地址栏里输入的是主机的端口号

也可以指定 -p 标识来绑定指定端口:docker run -d -p 5000:5000 training/webapp python app.py  (-p 主机端口:容器端口)

12、            docker top  id/name 来查看容器内部运行的进程

13、            docker inspect  id/name查看容器的状态和配置信息

14、            docker ps -l 查询最后一次创建的容器

15、            docker rm id/name 删除容器

16、            使用 docker images 来列出本地主机上的镜像

17、            同一个镜像可以有多个 TAG,代表这个仓库源的不同个版本,使用 REPOSTITORY:TAG 来定义不同的镜像。

如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:

docker run -t -i ubuntu:15.10 /bin/bash

18、            下载镜像:docker pull name

19、            查找镜像:docker search  name

20、            在运行的容器内使用 apt-get update 命令进行更新

21、            通过docker commit创建新的镜像

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

  • -m:提交的描述信息
  • -a:指定镜像作者
  • e218edb10161容器ID
  • runoob/ubuntu:v2:指定要创建的目标镜像名

22、            使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

23、            每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。第一条FROM,指定使用哪个镜像源RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

 

24、 docker build -t runoob/centos:6.7 .

-t :指定要创建的目标镜像名

.上下文路径|URL: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件
-f: 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下),
 如果不使用 -f,则默认将上下文路径下的名为 Dockerfile 的文件认为是构建镜像的 "Dockerfile" 。

25、            为镜像添加一个新的标签

docker tag 860c279d2fec runoob/centos:dev

(docker tag id 用户名/镜像名:新标签)

26、            创建一个容器的时候,docker会自动对它进行命名。另外,我们也可以使用--name标识来命名容器 【name前面是两个-】

27、退出 attach 状态比较麻烦(Ctrl+p 然后 Ctrl+q 组合键),一不小心很容器将容器杀掉(比如按下 Ctrl+C)

28、docker logs 能够打印出自容器启动以来完整的日志,并且 -f 参数可以继续打印出新产生的日志

29、容器运行了哪些进程:docker top 容器

30、查看容器的资源使用情况:docker stats 容器1 容器2; 若查看所有容器的资源使用情况:docker stats

31、docker mount可以指定文件的权限:读写,只读,只写,下面这个例子是只读

32、docker cp 可以在容器和 host 之间拷贝数据

33、volume container 的作用只是提供数据,它本身不需要处于运行状态,所以创建volume container时只需create,不用start

 34、docker run -it --entrypoint="/bin/bash"  10.60.10.119:5000/common/air_grpc:0.0.2 修改容器入口点

35、GPU容器启动的方式之一: 需要有nvidia docker环境,以便使用gpu
nvidia-docker run -d -p 8010:8010 --restart=always 实体抽取镜像名 python /app/event-extract-yuqing/server_start.py

36、想在执行完entrypoint后,再执行一个shell脚本

docker run -it --entrypoint=/home/tst1.sh zcy:v1  /home/tst2.sh

 

 

28、            未完待续------------------------

 

 

posted on 2017-07-17 15:12  我和你并没有不同  阅读(256)  评论(0编辑  收藏  举报