Docker相关概念及要点

1.基本概念
Docker 的容器通过 Linux 的命名空间完成了与宿主机进程的网络隔离。

Docker 为我们提供了四种不同的网络模式,Host、Container、None 和 Bridge 模式。

Docker 默认的网络设置模式:网桥模式。

我们通过 Linux 的命名空间为新创建的进程隔离了文件系统、网络并与宿主机器之间的进程相互隔离,但是命名空间并不能够为我们提供物理资源上的隔离,比如 CPU 或者内存,如果在同一台机器上运行了多个对彼此以及宿主机器一无所知的『容器』,这些容器却共同占用了宿主机器的物理资源。

Control Groups(简称 CGroups)就是能够隔离宿主机器上的物理资源,例如 CPU、内存、磁盘 I/O 和网络带宽。

容器和镜像的区别就在于,所有的镜像都是只读的,而每一个容器其实等于镜像加上一个可读写的层,也就是同一个镜像可以对应多个容器。

2.Dockerfile编写要点
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。

2.1基础镜像信息
指定基础镜像,并且必须是第一条指令。
FROM :
例:FROM snapshot-docker.artnj.xxx.com.cn/xxx/jdk:1.0.0

2.2维护者信息
指定作者
MAINTAINER
例: MAINTAINER AlexZhang

2.3镜像操作指令
RUN
RUN
RUN [“executable”, “param1”, “param2”]

注意:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层.
多少个RUN就构建了多少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错。
RUN书写时的换行符是\

3.Docker常用命令
基础:
查看Docker版本信息:docker version
查看本地已有镜像:docker images
查看所有容器:docker ps
查看正在运行的容器:docker ps -a
删除镜像:docker rmi 镜像id
制作镜像:(进入dockerfile所在文件夹)docker build -t 镜像名称:tag
拉取基础镜像到本地:docker pull docker.xxx.com.cn/xxx/centos:7.2.1511
推送镜像到远端:docker push docker.xxx.com.cn/xxx/centos:7.2.1511
镜像重新打标签:docker tag imageName:1.6.45 : imageName:1.6.46
启动镜像并进入容器:docker run -it -p 8501:8500 -v /usr/local/aiop/consul/consul:/usr/bin/consul apphub.xxx.com.cn/dev/flume-centos6.8_tomcat7.0:v1.1 bash
镜像启动后执行脚本:docker run -it -v /zdops/kwtest:/local/code -v /zdops/kwtest/report:/local/report docker.xxx.com.cn/cca/public/centos:ci-keclent-test /bin/bash /local/start.sh /local/code/kw-test.json
(注意:脚本和参数文件都需要在容器内部)

进阶:
强制删除所有容器:docker rm -f $(docker ps -a|grep -v CONTAINER | awk ‘{print $1}’)
强制删除所有镜像:docker rmi -f $(docker images | awk ‘{print $3}’)
停止所有的容器:docker stop $(docker ps -a -q)
删除所有none镜像:docker rmi docker images | grep "<none>" | awk '{print $3}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值