1、docker常用命令
docker search [应用名称] # 查询
Options:
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
docker images # 查询所有镜像
docker ps # 查询所有正在运行的镜像
docker exec -it [容器id/名字] /bin/bash # 进入容器 使用了exit命令,容器不会退出后台运行
docker attach [容器id/名字] # 进入容器 使用了exit命令,容器就会退出后台运行
docker image inspect [容器id/名字] # 查看镜像分层
docker stop [容器id] # 停止容器
docker start [容器id] # 启动容器
docker restart [容器id] # 重启
docker stop $(docker ps -a -q) # 停止所有
docker rm $(docker ps -a -q) # 删除所有
docker rmi [image id] # 指定删除
docker rmi $(docker images -q) # 删除全部
docker cp 容器id:容器内路径 目的地主机路径
docker commit # 提交容器成为一个新的版本
# 命令和git 原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]
2、数据卷
容器之前数据共享
2.1、 使用数据卷
方式一 -v 设置数据卷
docker run -it -v 主机目录:容器目录
2.2 、匿名和具名挂载
# 匿名挂载
docker run -P --name [容器名称] -v 容器内路径
docker vloume ls # 查看所有挂载
# 通过-v 卷名:容器内的路径
docker volume inspect juming-nginx #查看一下这个卷
所有docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxxx/_data
# 通过 -v 容器内容路径 ro rw 改变读写权限
ro readonly # 只读
rw readwrite # 可读可写
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内容无法操作
docker inspect 容器id # 查看元数据
# 多个mysql 之前实现数据共享
[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -d -p 3344:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -d -p 3344:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7
3、dockerfile
3.1、dockerfile 介绍
FORM # 基础镜像
MAINTAINER # 镜像作者
RUN # 镜像构建的时候需要运行的命令
ADD # 添加
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留的端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有一个会生效,可被代替
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBULID # 当构建一个被DockerFile 这个时候就会运行 ONBUILD 的指令。触发指令。
CPOY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量
3.2、创建一个centos 镜像
FROM centos
MAINTAINER maonao<邮箱地址>
ENV WORKPATH /home
WORKDIR $WORKPATH
RUN yum insatll vim -y
EXPOSE 80
CMD echo '--Successfull--'
3.3、构建镜像
docker build -f dockerfile名称 -t 名称:tag .
3.4、CMD 和 ENTRYPOINT 区别
cmd 会覆盖
ENTRYPOINT 追加