ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker常见命令,容器数据卷,以及DockerFile的构建

2021-09-20 17:02:54  阅读:157  来源: 互联网

标签:容器 run -- docker 镜像 Docker DockerFile id


Docker基本命令

帮助命令

docker version:显示docker帮助信息
docker info:显示系统信息,镜像,容器
docker --help:帮助命令

帮助命令地址

镜像命令

docker images --help
REPOSITORY 镜像的仓库名
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像的大小

#可选项
Options:
  -a, --all             #列出所有镜像
  -q, --quiet           #只显示镜像ID

搜索命令

docker search xxx

下载镜像

docker pull mysql:5.7

镜像卸载

docker rmi -f  id id:批量删除
docker rmi -f $(docker -ap) 删除全部

容器命令

docker run  [可选参数] image

参数说明
--name=""  容器名字 用于区分容器
-d         后台方式运行
-it        使用交互方式运行,进入容器查看内容
-p	       指定容器的端口 -p 80:8080  主机端口:容器端口
-P(大写)    随机指定端口

测试

docker run -it centos /bin/bash
exit:退出
docker ps:列出所有运行的容器
docker ps -a:查看运行过的容器
docker ps -n=?:查看最近创建的容器
docker ps -q:只显示容器的编号

退出容器

exit :直接容器停止并退出
ctrl + p + q 直接退出容器

删除容器

docker rmi 容器id
docker rmi -f[递归] $(docker ps -aq) :递归删除所有的容器
docker ps -a | xargs docker rm :递归删除所有的容器

启动和停止容器的操作

docker start 容器id  #启动容器
docker restart 容器id  #重启容器
docker stop 容器id	#停止当前正在运行的容器
docker kill 容器id 	#强制停止当前容器

后台启动容器

docker run -d 镜像名

日志查看

docker logs -tf --tail 10 id:查看i为什么的10条日志   显示全部的

查看容器的进程信息

docker top id

查看镜像元数据

docker inspect id

进入当前正在运行的容器

docker exec -it id  /bin/bash:交互进行 进入容器后开启新的终端
docker attach id :进入容器正在执行的终端

从容器中拷贝文件

docker cp id:容器内路径
docker cp 90d81c8bc9ec:/home/test.java /home
docker ps -a:查看所有的容器

小试牛刀

搜索镜像

docker search nginx

拉取镜像

docker pull nginx

启动

docker run -d --name nginx01  -p 3302:80  nginx:  -d:后台运行   --name:取名字 
curl localhost:3302
whereis nginx:寻找nginx配置文件 

部署Tomcat需要将webapps.dist中内容复制到webapps中

docker exec -it tomcat3  /bin/bash:进入容器
cp webapps.dist/* webapps
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS= 
"-Xms64m -Xmx 512m"  elasticsearch:7.6.2
docker stats:查看cpu状态

可视化面板

Docker图形化界面使用

安装命令

docker run -d -p 9100:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

commit镜像

docker commit 提交一个容器成为一个新的副本
docker commit -m="提交的描述信息" -a="作者" 容器ID 目标镜像名:[tag]
docker exec -it cfa56974f7c7:进入到容器
docker run -it  -p 8080:8080 tomcat:启动容器
docker commit -a="chen" -m="add webapps" cfa56974f7c7   tomcat1:1.0:提交操作
 

容器数据卷

需求: 数据可以持久化 需求: mysql数据可以存储在本地!

容器之间可以有一个数据共享的技术!

Docker 容器中产生的数据,同步到本地!目录的挂载,将容器内的目录挂载到Linux上面!

方式一:用命令来挂载

docker run -it -v 主机目录: 容器内目录  -p 主机端口: 容器端口
docker run -it -v /home/ceishi:/home  centos /bin/bash    前面的路径是主机路径,后面是容器路径
docker inspect 容器id:查看是否挂载成功

MYSQL持久化

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

-d  后台运行
-p  端口映射
-v  端口映射
-e  环境配置
--name 容器名

具名和匿名挂载

-v 容器内路径!
docker -run -P -name nginx01 -v /etc/nginx nginx
docker volume ls:查看所有挂载的本地镜像
docker volume inspect 名字:查看具名或匿名挂载的具体位置
如何确定是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径:匿名挂载 
-v 卷名:容器内路径:具名挂载
-v 宿主机路径 : 容器内路径 指定路径挂载

初识DockerFile

用来构建docker镜像的构建文件,命令餐数脚本

创建一个dockerfile文件,名字可以随机 建议 dockerfile
文件中的内容	
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bin/hash
docker build -f /home/docker-test-volume/dockerfile1  -t   chen/centos:1.0 .:打包生成镜像

数据卷容器(较难待研究)

DockerFile构建

  1. 每个保留关键字(指令)都是必须要大写
  2. 执行从上到下顺序执行
  3. ‘#’ 表示注释
  4. 每一个指令都会创建提交一个新的镜像层,并提交 !

在这里插入图片描述

FROM 	基础镜像, 一切从这里开始构建
MANTAINER  镜像是谁写的, 姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD  步骤, tomcat镜像,压缩包! 添加内容
WORKDIR  镜像的工作目录
VOLUME  挂载的目录
EXPOSE  暴露端口配置
RUN 运行
CMD  指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD  当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令
COPY		类似ADD,将我们文件拷贝到镜像中
ENV 	 构建的时候设置环境变量! 

标签:容器,run,--,docker,镜像,Docker,DockerFile,id
来源: https://blog.csdn.net/qq_55362295/article/details/120392857

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有