docker基本概念理解

docker基础有:仓库(可以使用官网的仓库,也可以本地搭建自己的仓库),守护进程,镜像,容器。

1:systemctl start docker #启动docker守护进程  stop  restart 等。

2:构建镜像,可以pull从仓库中拉取镜像到本地。也以build新的image

3:创建容器 create 可以与run的参数差不多。 如:docker create --name mysql5.7 -p 3306:3306 -v /opt/docker-mysql/conf.d:/etc/mysql/conf.d -v /opt/docker-mysql/var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  mysql:5.7.28

4:启动容器。如:docker start mysql5.7

 

相关所有命令可以输入:docker -h 查看所有的命令

 


这里讲一下docker的构建image:

1:原始的Dockerfile来创建image 

第一步:写Dockerfile

from java:8
volume /tmp/dockervolume
workdir /tmp/runroot
add eureka-server-1.0-SNAPSHOT.jar eureka-center.jar
expose 8000
entrypoint ["java","-jar","eureka-center.jar"]

from java:8,表示构建的这个镜像依赖java:8 这个镜像

volume /tmp/dockervolume   指定匿名挂载卷

workdir /tmp/runroot    指定我们这个程序执行的根目录

add  ,指添加文件到我们的image中

expose 声明端口

entrypoint 这个和cmd命令差不多。这个可以支持run我们的容器时,带一些参数输入。

 

第二步:执行build命令,构建image了:

docker build -t localhost:5000/eureka-center:1.0.0 .

这一步就是结合 -t(即tag命令)来构建一个指定本地仓库的image,最后面的有一个".",这个表示这个命令在当前目录执行。


我们可以使用简单的run,可以帮我们把程序运行到一个新创建的container里面去。也可以先用docker create之后再用docker start xxx

docker run -d -p 8001:8000 --name eurekaservice  localhost:5000/eureka-center:1.0.0 

这里大家说一下  volume 与run里面的 -v 的区别。  Dockerfile里面是声明了一个挂载的卷目录,在运行时往volume里面写入文件时,docker容器是不会增大的。会默认到直接运行docker机器找一个目录默认指定到这个卷中去(/var/lib/docker/volumes)。

如果我们指定-v  这里就直接将对应的日志目录映射到外面来了。如:

docker run -v /home/tmp:/springcloud/logs --rm --name eureka-service2 -d -p 8000:8000 localhost:5000/eureka-center:1.0.1

这样就将docker里面的/springcloud/logs 这个目录映射到 /home/tmp这个外面的目录了

 

这里只讲解原理,至于基本的命令啥请参考:

https://www.runoob.com/docker/docker-command-manual.html

https://yeasy.gitbooks.io/docker_practice/container/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值