标签:不能 key top 处理 version 保存 port 公有 def
docker是一个开源的应用容器引擎,基于go语言实现,可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后完全发布到任何Linux机器上,也可以实现虚拟化
Docker主机:安装了Docker程序的机器
Docker客户端:通过命令行或者其他工具使用Docker
Docker仓库:用来保存各种打包好的软件镜像
中央仓库公有的HUB
Docker镜像:用于创建容器的
Docker容器:镜像的实例
# 启动服务docker
service docker start
# 重启服务
service docker restart
# 停止服务
service docker stop
# 镜像容器操作
# http://hub.docker.com 所有镜像都可查看
# docker搜索mysql镜像
docker search mysql
# docker拉取mysql镜像可以指定版本默认为lastest
docker pull mysql:8.0.17
# 查看本机镜像
docker images
# 删除docker容器
docker rm [container-id or container-name]
# 删除docker镜像
docker rmi [container-id or image-name]
# 查看docker中的容器 -a全部all(无论有没有运行)
docker ps -a
# 新建并运行镜像 参数
# t伪终端 i交互界面 p端口映射 --name容器名 d后台运行 P随机映射端口
docker run -i -t -d -p 3306:3306 mysql
# 进入容器目录
docker attach [container-id or container-name]
# 运行容器
docker start [container-id or container-name]
# 停止容器
docker stop [container-id or container-name]
# 查看容器日志
# -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出 -e携带参数给容器
docker logs -f [container-id or container-name]
# 查看端口映射
docker port [container-id or container-name]
# 可以查看容器内的运行的进程
docker top [container-id or container-name]
# 查看容器底层的配置信息返回一个json文件
docker inspect [container-id or container-name]
# 用于容器与主机之间的数据拷贝
docker cp [path] [container-id or container-name]:[path]
docker cp [container-id or container-name]:[path] [path]
# 推出并关闭容器/退出容器
exit/ctrl+p+q
?
# 登录mysql
docker exec -it [container-id] /bin/bash
共享目录类似挂载,容器与主机之间数据共享,二者对数据卷中的数据共享(可读可写可/指定)
docker -it -v [/宿主机绝对路径]:[/容器内的目录]:[ro(宿主机只读不能写,主机可读可写) ] [image-name]
docker -it -v /mydata-host:/mydata-container:ro tomcat
DockerFile
ockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile
中的指令自动生成映像。
docker build
命令用于从Dockerfile构建映像。可以在docker build
命令中使用-f
标志指向文件系统中任何位置的Dockerfile。
test.java ====>test.class
Docker images ========> DockerFile
docker bulid -f [dockerfile] -t [name]:[version]
数据卷容器
名命的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据的共享,这个父容器称为数据卷容器
父容器的数据通过数据卷传递给子容器
docker run -it --name dc02 --volumes-from dc01 my-centos-image
Dockerfile的执行
保留字指令,大写,后面至少要有一个参数
从上到下、顺序执行
#表示注释
每一个指令都会创建一个镜像
Docker从基础镜像运行一个容器
执行一条指令并对容器作出修改
执行类似docker commit 的操作提交一个新的镜像
docker再基于刚提交的镜像运行一个容器
执行Dockerfile中的下一条指令知道所有的指令都执行完
保留字指令
FROM 基础镜像当前镜像基于此镜像构建
MAINTAINER 镜像维护者姓名邮箱
RUN 容器构建时需要运行的命令
EXPOSE 端口
WORKDIR 登陆容器的默认目录
ENV 环境变量
ADD 构建时添加的本机文件可处理url和解压
COPY 同ADD 不能解压和处理url
VOLUME 数据卷
CMD 容器的运行命令,只有之后一个起作用,最后输入的会替换前面的(包括参数中带入的)
ENTRYOPOINT 同CMD,不会替换但会追加命令
ONBUILD 父镜像在被子镜像进行构建时会被触发
例子:centos6.8------------->Dockerfile
FROM scratch
MAINTAINER The CentOS Project <cloud-ops@centos.org>
ADD c68-docker.tar.xz /
LABEL name="CentOS Base Image" \
vendor="CentOS" \
license="GPLv2" \
build-date="2016-06-02"
?
# Default command
CMD ["/bin/bash"]
标签:不能 key top 处理 version 保存 port 公有 def
原文地址:https://www.cnblogs.com/yangenyu/p/11740346.html