Docker笔记

Docker

docker version
docker help
docker info

docker 的下载与安装:

直接在官网上找到与自己版本配置的docker,我用的是centos7
我用的是centos7以上
也可以选择自定义安装,详情看docker官网

镜像

镜像是一个轻量级,可执行的独立软件包

docker images [options]

options说明:
-a:列出本地所有的镜像(含中间映像层)
-q:只显示镜像ID
--digests:显示镜像的摘要信息
--no-trunc:显示完整的镜像信息

docker search [options]

options说明:
	-s n:显示收藏数不小于n的镜像
	--notrunc:显示完整的的镜像描述
	--automated:只列出automated build类型的镜像

docker pull

docker rmi [options]

options说明:
	-f:强制删除

案例:docker rmi -f $(docker images -qa)

docker commit :提交容器副本使之成为一个新的镜像

案例:docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

容器

docker run [options] 镜像ID或镜像名 [command]

options说明:
	--name:自定义容器名
	-i:以交互模式运行容器,通常与-t同时使用
	-t:为容器重新分配一个伪输入终端
	-P:随机端口映射
	-p:指定端口映射,有四种格式:
		ip:hostPort:containerPort
		ip::containerPort
		hostPort:containerPort (常用)
		containerPort

docker ps [options]

options说明:
	-a:显示当前和历史上运行过的
	-l:显示最近创建的那个容器
	-n:显示最近N个创建的容器
	-q:静默模式,只显示容器ID
	--no-trunc:不截断输出

在容器里退出容器有两种方法:
exit:容器停止退出
ctrl+p+q:容器不停止退出

docker start 容器ID或容器名

docker restart 容器ID或容器名

docker stop 容器ID或容器名

docker kill 容器ID或容器名

docker rm 容器ID :删除已停止的容器

案例:
docker rm -f $(docker ps -aq)
docker ps -aq| xargs docker rm

docker run -d 容器名:启动守护式容器

docker logs -f -t --tail 容器ID

-t:加入时间戳
-f:跟随最新的日志打印
--tail n:显示最新的n条日志

docker top 容器ID :查看容器内部运行的进程

docker inspect 容器ID :使用json格式查看容器内部细节

进入正在运行的容器并以命令交互

docker exec -it 容器ID bashShell
docker attach 容器ID

两种方式的区别:
attach:直接进入容器启动命令的终端,不会启动新的进程
exec:是在容器中打开新的终端,并且可以启动新的进程

docker cp 容器ID:容器内路径 目的主机路径

docker容器数据卷:使容器运行产生的数据保存下来

功能:容器持久化、容器间继承+共享数据

容器内添加数据卷

直接命令添加
docker run -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

ro:read only : 容器权限为只读

DockerFile添加

1.根目录下新建mydocker文件夹并进入
2,dockfile的创建:
在DockerFile中使用VOLUME指令给镜像添加一个或多个数据卷

#volume test
FROM centos
VOLUME ["/volume1", "/volume2 "]
CMD echo "finished -----success"
CMD /bin/bash

根据dockerfile创建自己的镜像
docker build -f /mydocker/dockerfile1 -t joe/centos .
运行容器:docker run joe/centos --name dc01
因为使用DockerFile是随机分配主机的容器卷,在这里可以使用docker inspect 容器ID 查看主机上对应的容器卷

容器间传递共享

容器在创建时可以继承其他容器
docker run -it --name dc02 --volumes -from dc01 joe/centos
容器之间配置信息的传递:数据卷的生命周期一直持续到没有容器使用它为止

DockerFile

是用来构建镜像的框架文件,是由一系列,命令和参数构成的脚本
构建三步骤:
编写dockerfile
docker build
docker run

DockerFile基础知识

1.每条保留字指令都必须为大写字母且后面要跟随至少一个参数
2.指令按照从上到下,顺序执行
3.#表示注解
4.每条指令都创建一个新的镜像层,并对镜像进行提交

Docker执行DockerFile流程

1.docker从基础镜像运行一个容器
2.执行每一条指令并对容器做出修改
3.执行类似docker commit,提交一个新的镜像层
4.docker再基于刚提交的镜像运行一个新的镜像层
5.执行DockerFile中的下一条指令直到全部执行完

保留字

FROM						    :基础镜像
MAINTAINER						:作者的名字和邮箱
RUN								:容器构建时需要运行的命令
EXPOSE							:暴露端口
WORKDIR							:指令在创建容器后,终端默认登录进来的工作目录,落脚点
ENV								:用来在构建镜像过程中设置环境变量
ADD								:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理url和解压tar压缩包
CORY							:类似ADD,但不会对文件进行处理
VOLUME							:指定数据卷
CMD								:容器启动时执行的命令 CMD会被DockerFile run之后的参数替代
ENTRYPOINT						:和CMD功能一样,DockerFile run之后的参数会追加到ENTRYPOINT的指令上
ONBUILD							:当构建一个被继承的DockerFile时运行,父镜像被子镜像继承时ONBUILD被触发

DockerFile案例

MyCentOS

mydockerfile

FROM  centos
ENV mypath /tmp
WORKDIR $mypath
RUN yum -y install vim
RUN yum -y install net -tools
EXPOSE 80
CMD echo $mypath
CMD echo "success .....ok"
CMD /bin/bash

docker build -f mydockerfile -t mycentos:1.3 .
docker run -it mycentos:1.3

MyTomcat

先将jdk和centos的压缩包和创建的mytomcatdockerfile放在同一文件夹下
mytomcatdockerfile:

FROM centos
MAINTAINER joe<1251664915@qq.com
ADD jdk-8u171-linux-x64.tar,gz /usr/local
ADD apache-tomcat-9.0.8.tar.gz /usr/local
RUN yum -y install vim
ENV mypath /usr/local
WORKDIR $mypath
ENV JAVA_HOME /usr/local/jdl1.8.0-17/
ENV classpath $JAVA_HOME:/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out 
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.8/bin/catelina.sh","run"]

补充:安装mysql和redis的注意点

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值