最近重新梳理了一下docker的一些基本知识,简单做了下总结。以后会逐步补充。

1、查看系统内核版本,需要3.10以上

$ uname -r

2、下载docker

说明:centos安装docker比较简单,使用yum安装即可。ubuntu下如果实用apt-get的方式安装不会是最新版,可以之前帖子,里面做了详尽的讲解。

ubuntu:http://www.cnblogs.com/tianhei/p/7802064.html

centos:yum install docker

3、查看docker版本

$ docker -v

4、启动docker

$ service docker start

5、设置开机启动(可以不设置)

$ systemctl start docker
$ systemctl enable docker

6、下载镜像

官方镜像:hub.docker.com

阿里云的docker仓库:dev.aliyun.com

例如:docker pull busybox

7、查看镜像

$ docker images

8、删除镜像

不能删除镜像的情况:

1)有容器使用镜像已经被创建

2)此镜像是其他镜像的父镜像

查看当前跑起来的镜像:

$ docker ps -a

查看镜像的信息:

$ docker inspect app:1.0 //app是镜像名,1.0是镜像版本

删除镜像:

$ docker rmi IMAGE_ID // IMAGE_ID 是image的唯一id

9、上传镜像

官方网站(缺点网速慢):docker hub

私有仓库(需要维护网速快):

上传到官方docker hub实例:

1)进入docker hub官网网站创建账号

2)docker login // 输入用户名密码

3)docker push carson/alpine // carson/alpine是镜像名

10、启动容器

$ docker -run -d -p : --restart=always --name registry -v /data/registry:/var/lib/registry registry:

说明:

dockcer run 创建容器

-d:创建后,进程启动到后台

-p:端口映射。前面宿主机,后面容器

--restart=always:有异常自动启动

--name:容器名字

-v:容器的目录映射

registry:2 : 要启动的镜像名字

11、docker的操作命令

run/create:创建

start:启动

stop/kill:停止

restart:重启

pause:暂停
unpause:恢复

logs:查看容器

stats:使用的容量等

top:看到容器跑了多少进程

port:端口映射信息

exec/attach:docker exec -it app bash //登录容器中 exit退出

diff:

inspect:查看容器详细信息

update:更新容器信息

例如:docker update -h //查看帮助

docker update -m 256m app //app这个容器使用内容更新到256m

cp:拷贝文件。宿主机和容器间

例如:docker cp app:/usr/share/nginx/html/index.html .

export:把容器保存到tar文件

import:把tar文件导出到镜像列表

rm:删除。-f强制

12、镜像与容器的关系

镜像是只读的,容器是执行起来的镜像。

容器之间有一样的文件是可共用的,省资源。

commit:把容器commit成镜像

docker commit -h

save:把镜像保存成tar文件

load:把镜像tar文件导入到镜像列表

history:查看镜像的操作历史

pull:下载镜像

search:查找镜像源

13、保留容器数据volume

默认的情况下,容器中的数据只有本次启动可见,如果容器重启数据不会保留。若想让数据持久化,需要使用volume参数来挂载一个本地路径以保留数据。

docker run -v把数据挂在到宿主机

容器间数据共享,相当于挂载:

例子:

第一个容器:docker run -d -v /web-data:/tmp:ro --name data-container demos

第二个容器:docker run -d --volumes-from data-container --name web-container domos

第三个容器:docker run -d --volumes-from data-container --name web-container-2 domos

14、dockerfile

dockerfile用于制作一个用户自定义的镜像。需要使用FROM、RUN、WORKDIR、CMD等语法格式进行编写。

dockerfile文件内容:

FROM centos:
RUN yum -y install epel-release && \
yum -y install nginx && \
yum clean all
EXPOSE
CMD ["nginx","-g","deamon off;"]

制作docker镜像

$ docker build -t app . 

15:、docker网络模式

nat(默认):每个容器有个网卡,每次启动都会给容器分配一个私有ip。每次启动ip会变

host:固定ip,跟主机ip相同,比较危险宿主机容易被攻击。docker run -d --name app --net=host nginx:1.11.1

container:两个容器使用一样的ip。docker run -it --name app --net:container:app1 app sh

none:不创建网络。

docker知识点杂记的更多相关文章

  1. Docker 使用杂记 - 最佳实践尝试 - 实战

    目录 Docker 使用杂记 - 最佳实践尝试 - 实战 Docker简介 项目背景 内在原因 外在原因 基础镜像 需求 镜像维护者 工作文件夹 文件 ADD COPY 宗卷 命令 入口点 Docke ...

  2. docker知识点

    1  安装 http://www.runoob.com/docker/centos-docker-install.html 2  dockerhub官网找到 emqttd 执行 docker pull ...

  3. docker 知识点汇总

    目录 什么是 Docker Docker 简介 Docker 的特点 如何使用 Docker 镜像的常用操作 容器的常用操作 Docker 命令汇总 手工制作 java 镜像 使用 Dockerfil ...

  4. docker 知识点

    docker 教程:http://www.runoob.com/docker/docker-tutorial.html docker 仓库地址:https://store.docker.com/ do ...

  5. Docker知识点总结

    一. docker介绍: 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不 ...

  6. Docker知识点整理

    目录 1. Docker简介 1.1 Docker是什么 1.2 在隔离的容器中运行软件 1.3 分发容器 2. Docker镜像 2.1 Docker镜像简介 2.2 Docker镜像常见操作 2. ...

  7. docker知识点扫盲

    最近给部门同事培训docker相关的东西,把我的培训内容总结下,发到博客园上,和大家一起分享.我的培训思路是这样的 首先讲解docker的安装.然后讲下docker的基本的原理,最后讲下docker的 ...

  8. redis知识点杂记

    最近梳理了一下redis的基本知识.本文会从redis的简单使用.redis的数据类型.redis持久化三个方面做简单阐述和总结. 一.Redis基本操作 1.key的规则 不能使用\n空格.其他都可 ...

  9. python知识点杂记2

    1. 如果已经有一个list或者tuple,要调用一个可变参数怎么办?2. >>> nums = [1, 2, 3]3. >>> calc(*nums)4. 14* ...

随机推荐

  1. 学习excel的使用技巧四显示正常的数字

    记得之前在excel中输入一些数字比如输入手机号 就会变成1.E几类似这种 那么怎样显示正常的数字呢 先选中要操作的输入框 1  找到 数字 这个功能的地方 2 设置为 数值  并且小数点为0 3  ...

  2. 如何解决python 图表中文显示乱码问题(matlplotlib 包)

    目前搜到的是,下载一个字体到程序路径,设置成默认字体.  https://blog.csdn.net/irene_loong/article/details/68955485 #图表显示中文设置 im ...

  3. kettle数据库连接使用变量

    新增db连接(密码也可以设置参数) 转换中,右键空白处,选择转换设置

  4. java 内部类注意点

    1.只有内部类可以是私有类,而常规类只可以具有包可见性,或公有可见性. 内部类访问权限修饰符可以为:public.protected.默认.private:(可以用哪些修饰符视具体内部类类型而定) 常 ...

  5. Linux网络编程学习(一) ----- 概论和Linux模型(第一章第二章)

    1.什么是计算机网络,通信方式是什么? 计算机网络就是通过通信线路相互连接的计算机的集合,主要通过双绞线.同轴电缆.电话线或者光缆等有形传输介质通信,还有就是通过激光.微波.卫星等实现无线通信 2.W ...

  6. resize2fs

    VPS是15G的..但是dh和fdisk显示不一样..求解 df:Filesystem Size Used Avail Use% Mounted onudev 236M 0 236M 0% /devt ...

  7. lambda正则化参数的大小影响

    当lambda的值很小时,其惩罚项值不大,还是会出现过拟合现象,当时lambda的值逐渐调大的时候,过拟合现象的程度越来越低,但是当labmda的值超过一个阈值时,就会出现欠拟合现象,因为其惩罚项太大 ...

  8. Oracle修改表结构字段名和字段长度

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...

  9. jquery中bind和on的区别

    1.首先,来看看bind和on的语法. bind的用法: $('a').bind('click',[data],function(){}) 其事件的绑定者是固定的,就是a,第一个参数是事件,第二个参数 ...

  10. 在java服务端判断请求是来自哪个终端

    在servlet中,我们可以获取到HttpServletRequest,然后通过HttpServletRequest的getHeader("User-Agent")方法获取请求头中 ...