docker知识点大全 中间件部署 常用指令
2022-03-02 20:21:39 66 举报
AI智能生成
登录查看完整内容
docker应用 快速学习入门 部署常用组件
作者其他创作
大纲/内容
docker
登录容器
docker exec -it 容器名称|容器id /bin/bash
数据目录挂载
在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。使用 -v 选项
docker run -id -v /宿主机绝对路径目录:/容器内目录 --name=容器名 镜像名
docker run -id -v /opt:/opt --name=mycentos3 centos:7
只读(Read-only)权限
docker run -id -v /宿主机绝对路径目录:/容器内目录:ro --name=容器名 镜像名
docker run -id -v /dataHost:/dataContainer:ro --name=mycentos4 centos:7
查看容器内部细节
docker inspect mycentos2
容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2
删除容器
删除指定的容器
只能删除停止的容器
docker rm 容器名称 | 容器ID
删除所有容器
中运行中的容器无法删除,所以先停再删
docker rm `docker ps -a -q`
部署应用
MySQL 部署
拉取MySQL镜像
docker pull mysql:5.7
创建 MySQL 容器
docker run -id --name=cz_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker exec -it mxg_mysql /bin/bash
mysql -u root -p
Redis 部署
拉取Redis镜像
docker pull redis
创建Redis容器
docker run -id --name=cz_redis -p 6379:6379 redis
Tomcat 部署
拉取tomcat镜像
docker pull tomcat:8
创建tomcat容器
创建tomcat容器用于 Web应用,并且进行目录映射
docker run -id --name=cz_tomcat -p 8888:8080 -v /usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8
在宿主机的 /usr/local/project 目录创建cz目录,往里增加一个 hello.html 文件
http://192.168.10.11:8888/cz/hello.html
RabbitMQ 部署
拉取 RabbitMQ 镜像
docker pull rabbitmq:management
注意:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq.
创建 RabbitMQ 容器
方式一
docker run -id --name=cz_rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
方式二
启动镜像(设置用户名密码)
docker run -id --name=cz_rabbitmq -e RABBITMQ_DEFAULT_USER=username -e RABBITMQ_DEFAULT_PASS=password -p 5672:5672 -p 15672:15672 rabbitmq:management
访问Rabbit管理界面
zk部署
docker search zookeeperdocker run -d -p 2181:2181 --name=cz_zookeeper --privileged zookeeper
nacos部署
docker pull nacos/nacos-serverdocker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server# 登录密码默认nacos/nacos# standalone代表着单机模式运行,非集群模式
es\\kibana部署
docker pull elasticsearch:7.2.0docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e \"discovery.type=single-node\" -d elasticsearch:7.2.0curl http://localhost:9200
docker pull kibana:7.2.0docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0docker start kibanadocker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0docker start kibana
备份与迁移
容器保存为镜像
docker commit [-m=\"提交的描述信息\"] [-a=\"创建者\"] 容器名称|容器ID 生成的镜像名[:标签名]
查看是否有挂载目录
docker inspect --format='{{.Mounts}}' 容器名
无目录挂载-容器保存为镜像
docker commit mycentos2 mycentos_new:1.1
mycentos2 是容器名称mycentos_new 是新的镜像名称
创建并登录容器
docker run -it --name=mxg_mycentos_new mycentos_new:1.1 /bin/bash
有目录挂载情况(难点)
备份镜像
docker save -o mycentos.tar mycentos_new:1.1
-o 指定输出到的文件执行后,运行 ls 命令即可看到打成的tar包, 因为有463M所以打包要一会
镜像恢复与迁移
删除掉 mycentos_new:1.1 镜像(注意先停止并删除所有引用了的容器)
docker rmi mycentos_new:1.1
行恢复 mycentos_new:1.1 镜像
docker load -i mycentos.tar
Dockerfile语法
用于构建一个新的Docker镜像的脚本文件,是由一系列命令和参数构成的脚本
构建新的镜像步骤
1. 编写 Dockerfile 文件2. 通过 docker build 命令生成新的镜像3. 通过 docker run 命令运行
语法规则
1. 每条指令的保留字都必须为大写字母且后面至少要有一个参数2. 执行顺序按从上往下执行。3. # 用于注释4. 每条指令都会创建一个新的镜像层,并对镜像进行提交
执行流程
1. Docker 从基础镜像运行一个容器2. 执行每一条指定并对容器作出修改3. 执行类似 docker commit 的操作提交一个新的镜像层4. docker 再基于刚提交的镜像运行一个新容器5. 执行 Dockerfile 中的下一条指令直到所有指令都执行完成
常用指令
列出已安装所有镜像
docker images
只显示镜像ID
docker images -q
拉取镜像
docker pull 镜像名:标签名
删除镜像
docker rmi 镜像ID
查看容器
查看正在运行容器
docker ps
查看所有的容器(启动与未启动的容器)
docker ps -a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
查看容器的cpu占用率
docker stats
查看容器日志
docker logs -f -t --tail 100 容器id
创建容器
docker run [OPTIONS] 镜像名:标签名
OPTIONS
-i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与 -t 同时使用
--name 为创建的容器指定一个名称
-d 创建一个守护式容器在后台运行,并返回容器ID
-p 表示端口映射,格式为: -p 宿主机端口:容器端口
交互式容器
创建容器后,马上会启动容器,并进入容器
docker run -it --name=mycentos centos:7 /bin/bash
守护式容器
果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器(后台运行的容器)
docker run -id --name=mycentos2 centos:7
退出容器
退出并停止当前容器, 注意在容器内部的命令行执行
exit
退出不停止当前容器
Ctrl + p + q
启动容器
docker start 容器名称|容器id
docker start `docker ps -a -q`
启动所有运行过的容器
停止容器
停止正在运行的容器(正常停止)
docker stop 容器名称|容器id
强制停止正在运行的容器
docker kill 容器名称|容器id
停止所有在运行的容器
docker stop `docker ps -a -q`
自由主题
0 条评论
回复 删除
下一页