Docker

Docker简介

容器化技能:一个不完整的操作体系。

Docker入门,这一篇就够了

Docker为什么比虚拟机快?

  1. Docker有着比虚拟机更少的笼统层
  2. Docker使用的是宿主机的内核

所以说,新建容器时,docker不需求像虚拟机相同从头加载一个操作体系,防止引导。

VM是硬件虚拟化,操作体系的基本特征Docker是OS虚拟化。

VM会有5-20%的功用损耗,Docker是物理机功用。

常用指令

docker version

docker info

docker –help

docker pull [] 下载镜像

docker search [] 查找镜像

docker rmi [] 删去镜像

docker rmi -f $(docker images -aq) 删去悉数镜像

docker images 检查镜像

新建容器并建议

docker run [可选参数] [image]

–name=”name01″ 容器名字

-d 后台方法作业

-it 运用交互式作业,进入操作体系的基本特征容器检查内容操作体系

-p 指定容器端口,-p 8080:8080(主机端口:容器端口)

-P 随机端口

列出悉数作业的容器

docker ps [-a] 带出前史作业过的,[-n=?]最近作业的n个

-q 只闪现容器编号

退出容器

e变量名的命名规矩xit 退出容器

ctrl+P+Q 退出不连续

删去容器

docker rm 容器id 删去容器

docker rm -f $(docke接口r ps -aq) 删去悉数容器

建议重启和连续封闭

docker start 容器id

docker restart 容器id

docker变量名 stmysql怎样读op 容器id

docker kill 容器id

docker容器运用后台作业时(变量名的命名规矩docker run -d [镜像名]),假定没有前台进程,就会当即连续。例如nginx,容器建议后,发nginx装备现自己没有供给服务操作体系是什么的接口就会当即连续,便是没有程序了。

检查日志

docker logs [-tf] 闪现悉数带时间戳

–tail + num 检查日志数量

检查容器中进程信息

docker top 容器id

检查镜像元数据

docker innginx反向署理spect 容器id

进入当时正在作业的容器

咱们一般容器都运用后台作业,需求进入容器,修改一些装备。

docker exec -it 容器id bashshell

docker attach 容器id

exec 进入容器后翻开新的终端,可进行操作

attach变量泵 进入容器正在实施的终端变量值,不Nginx翻开新进程

从容器内仿制文件到主机

docker cp 容器id:容器内途径 目的的主机途径

检查操作体系的基本特征CPU情况

dockmysql索引er stats

可视化(protainer)

Docker图形化界面

docker run -d -p 8088:9000  --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

拜访方法:http://IP:8088

commit镜像

docker commit 提交镜像成为一个新的副本

docmysql暗码忘记了怎样办ker commit -m=”提交内容” -a=”作者名” 容器id 政策镜像名:[TAG]

容器数据卷

容器间能够有一个数据同享的数据。Docker容器中发生的数据同步到本地。

总结:容器耐久化和同变量与函数步操作,容器间也能够同享数据。

运用:docker run –变量值itNginx -v 主机目录:容器目录 bashshell

操作体系的主要功能是例:MySql数据耐久化

docker run -d -p 3mysql数据库310:3306 -v /home/变量泵mysql/conf:/etc/mysql/conf.d -v /h变量是什么意思ome/my接口卡sql/data:/var/lib/mysqlnginx负载均衡 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

docker run 后台作业 端口映射 卷挂载 环境装备 容器命名 镜像名

容器和nginx防火墙镜像的区别

镜像是只读的不能被保存或修改,一个镜像能够构建在另一个镜像之上,这种层叠联络是多mysql暗码忘记了怎样办层的。

容器便是在mysql索引悉数mysql面试题的镜像层之上增加一个可写层。这个可写层有作业在CPU上的进程,而且有两个不同的情况:作业态和连续态。从作业态到连续态,咱们对它所做的mysql暗码忘记了怎样办悉数都会永久地写到容器的文件系nginx装备统中,留意不是镜像中。能够用一个镜像建议多个容器,各个容器间互相隔绝。

Docker入门,这一篇就够了

签字挂载和匿名挂载

  • 匿名挂载:docker run -d -P -v /etc/nginx
  • 签字mysql暗码忘记了怎样办挂载:docker run -d -P -v name01:/etc/nginx

检查卷列表

docker volume ls

检查卷信息

docker volume inspect 卷名

-v 容器内途径 匿名挂载

mysql增修改查句子v 卷MySQL名:容器内途径 签字挂载

-v 宿主机途径:容器内途径 mysql装置装备教程定途径挂载

-v 容器内途径:ro(nginx怎样读只读) rw(可读变量与函数可写)

容器间数据同享

–volumes -fro变量之间的关系m 容器名

容器间的数据同操作体系的主要功能是享 容器数据卷之间的挂载

容器之间装备信息的传递,数据卷容器的生命周期一向持续到没有容器运用为止。但一旦耐久化到本地,本地数据不会被删去。

Dockernginx是什么意思File

用来构建docker镜像的构建文件,指令脚本。经过这个脚本能够生成镜像,镜像是一层层的,脚本是一个nginx负载均衡个的指令,每个指操作体系是计算机体系中的令都是一层。

Docker构建进程

  1. 编写一个dockerfile文件
  2. docke接口文档r build构建成一个镜像
  3. docker run作业镜像
  4. docker push发布镜像(DockerHub,阿里云……)

DockerFile指令

指令 阐明
FROM 根底镜像,悉数从这儿接口测验初步
MAINTAINER 镜像是谁写的,名字+邮箱
RUN 作业指令
ADD 增加内容,mysql装置可解压tar包(不同于COPY的当地)
WORKDI操作体系是什么的接口R 镜像作业目录
VOLUME 挂载的目录
EXPOSE 指定暴露端口(同-P指令)
CMD 指定容器建议时作业的指令
ENTRYPOINT 同CMD,C变量名MD只要mysql装置毕竟一个指令会收效,可被代替,ENTRYPOINT可追加指令
ONB操作体系的五大功能UILD 当构建一个被承继DockerFile这个时分就会作业ONB变量名UILD指令。触发指令
COPY 相似ADD,将咱们的文件仿制到镜像中
ENV 构建时设置环境变量

Dockmysql装置erHub中99%的镜像都是FROM变量值 scratch

DockerFile比如

创立一个自己的centos

FROM centos
MAINTAINER jy&操作体系的主要功能是lt;jy@test.com>
ENV MYPATH /usr/local
WORKDIR $MYPAT接口crc错误计数H
RUN yum -y install vim
RUN yum -y install nemysql增修改查句子t-tools
EXPOSE 80
CMD操作体系的五大功能 echo $MYPATH
CMD echo "---end---变量泵"
CMD /bin/bash

作业DockerFile文件

docker build -f 文件途径 -t 镜像名:[TAG] . 毕竟要加一个.

docker history 镜像id 能够看镜像接口和笼统类的区别的构建进程

编写dockerfile文件,官接口的效果方命名Dockerfile,build就会自动找,不需求-fnginx面试题指定文件了

CMD和ENTRYPOINT

CMD ["ls","-a"]

run时实施 ls -a

当Dockerfimysql创立数据库le中有CMD指令时

docker run 镜像id ls -al

追加的指令会替操作体系是一种什么软件换CMD句子,所以假定操作体系是一种什么软件追加-l会犯错,相当于CMD [“-l”]

但假定是

ENTRYPOINT ["ls","-a"]

docker run 镜像id -l

就不会犯错,会追加在ENTRYPOINT指令上

发布自己的镜像

docker login -u xx -p xx
docker push 镜像id:[TAG]

阿里云的镜像容器,nginx装备可参考阿里云官网

Docker网络

了解Docker0(运用ip addr检查nginx面试题网卡信息)

原理:

  1. 咱们每建议一个docker容器,docker就会给容器分配一nginx反向署理个ip,咱们只需装置了docker,就会有一个网卡domysql怎样读cker0。
  2. 桥接方式,运用的技能是veth-pair技能。
  3. 这个mysql增修改查句子容器带来的网卡都是一一对应的。
  4. veth-pair便是一对的虚拟设备接口,他们都是成对出现的,一端连着协议,一端互相相连。
  5. 正因为有这个特性,veth-pair充任一个桥梁,连接各种虚拟网络设备的。

Docker入门,这一篇就够了

如图,tomcat01和tomcat02是共用的一个路由器,docker0悉数的容器不指定mysql数据库命令大全网络的情况下,都是docker0路由的,docker会给咱们的容器分配一个默许的可用nginx怎样读IP。

Docker中的悉数网络接口都是虚拟的。虚拟的转发效率高!只需删去容器,对应的一对网桥就没mysql怎样读了。

–linkmysql增修改查句子

不需求用ip直接用容器名(服务名)ping

docker操作体系有哪些 exec -it to接口类型mcat02 ping tomcat01

上面的无法ping通!

docker run -d -P --name tomcat03 --link tomcat02 tomcatdocker exec -it tomcat03 p操作体系是一种ing tom变量名的命名规矩cat02

此刻就能够ping同通

原理:

docker exec -it tomcat03 cat /etc/honginx防火墙sts

总结:

–link便是在hosts装备中增加一个操作体系映射

检查网络信息

docker network lsdocker network inspect 网络ID

网络方式

bridgemysql装置:桥接方式(默许)

none:不装备网络

host:和宿主机同享网络操作体系是一种

container:容器网络连通(用得少,约束大)

docker run -d -P --n操作体系的基本特征ame tomcat01 --net bri操作体系dge tomcat

docker接口测验0特点:默许,域名不能拜访,–link能够打通

docker network creaMySQLte --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

解说:docmysql索引ker network create 桥接的网络方式 子网 网关 名接口文档

docker run -d -P --name tomysql怎样读mcat01 --net mynet tomcat

能够直接彼操作体系是什么的接口此ping通

docker exMySQLec -it tom接口测验cat01 ping tomcat02

网络连通

docker network con接口的效果nect mynet tomcat00

不同网络下的容器也能互相连通,tomcat00是变量名其他网络下的容器