1.docker基本命令

搜索镜像:docker search 镜像name
拉取镜像:docker pull 镜像name
启动:docker run -it 镜像name(进入docker内部)
后台启动:docker run -d 镜像name
例启动tomcat:docker run -d --name tomcat -p 8080:8080 tomcat:8
启动容器:docker start 容器id
重启容器:docker restart 容器id
停止容器:docker stop 容器id
重启容器后进入交互式:docker start -i 容器id
退出:Ctrl+P+Q或者exit
外部查看内部日志文件:docker logs -t -f --tail 3 容器id(3:查看后三行)
查看容器进程:docker top 容器id
查看docker内部细节:docker inspect 容器id
进入docker容器:docker attach 容器id
进入docker容器(外部直接查看):docker exec -it 容器id /bin/bash
容器内数据拷贝到主机:docker cp 容器id:/usr/local/tomcat.log /root(目标路径)
宿主机文件拷贝到容器:docker cp /文件路径 容器id:/usr/local
提交自定义镜像:docker commit -a=“name” tomcat -m=“提交信息” 容器id 新镜像id:版本

2.docker数据持久化

容器数据卷启动(和宿主机数据共享):docker run -it -v /宿主机目录:/容器内目录 镜像id
容器数据卷启动设置权限(只读):docker run -it -v /宿主机目录:/容器内目录:ro 镜像id
dockerfile:镜像描述文件
dockerfile文件构建容器数据卷
#volume
FROM 镜像
VOLUME ["/容器数据卷1",“容器数据卷卷2”]
CMD echo “输出信息=====相当于print()”
CMD /bin/bash
构建镜像:docker build -f /mydocker/Dockerfile -t 构建的镜像 .(后面有个点)
多容器构建传递共享:docker run -it --name 容器名 --volumes-from 共享容器 镜像

3.Dockerfile体系结构

FROM:基础镜像
MAINTAINER:镜像作者姓名和邮箱
RUN:容器构建时需要运行的命令
EXPOSE:当前容器对外暴露出的端口
WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录
ENV:构建镜像中设置环境变量
ADD:将宿主机目录文件压缩包拷贝到镜像并进行解压
COPY:将宿主机目录文件拷贝到镜像
VOLUME:容器数据卷,用于数据保存和持久化工作
CMD:指定容器启动时要运行的命令,可有多个,但只有最后一个生效,会把之前的替换
ENTRYPOINT:指定一个容器启动时要运行的命令,不会覆盖之前的命令
ONBUILD:构建一个被继承的Dockerfile是运行命令,父镜像在被子镜像继承后父镜像的onbuild被触发
构建镜像:docker build -f /mydocker/Dockerfile -t 构建的镜像 .(后面有个点)
查看镜像构建历史:docker history 镜像