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构建
- 每个保留关键字(指令)都是必须要大写
- 执行从上到下顺序执行
- ‘#’ 表示注释
- 每一个指令都会创建提交一个新的镜像层,并提交 !
FROM 基础镜像, 一切从这里开始构建
MANTAINER 镜像是谁写的, 姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD 步骤, tomcat镜像,压缩包! 添加内容
WORKDIR 镜像的工作目录
VOLUME 挂载的目录
EXPOSE 暴露端口配置
RUN 运行
CMD 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令
COPY 类似ADD,将我们文件拷贝到镜像中
ENV 构建的时候设置环境变量!