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

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. 每一个指令都会创建提交一个新的镜像层,并提交 !

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

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


下一篇:dockerfile详解