Docker为什么出现
环境问题:在我电脑上能运行,在你那就不行。
docker怎么解决:将配置好的环境 (jar +(Redis MySQL jdk) ) 打包好。
Docker中的名词
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
镜像(image):类似一个模板,可以通过这个模板创建容器。
容器(container):用镜像安装包安装容器,理解为小的linux系统,容器之间互相隔离。
仓库(repository):存放镜像的地方。远程,需要设置国内仓库。
Docker是一个Client-Server结构系统的守护进程。
Docker比虚拟机更少的抽象层,docker利用的是宿主机的内核。
UnionFS联合文件系统:分层、轻量、 高性能。
Docker常用命令
- docker images:查看安装的镜像。
- docker ps :查看正在运行的容器 , 加上-a更好。
- docker start:运行已经安装的容器。
- docker stop:停止已经运行的容器。
- docker search xx:搜索镜像。
- docker pull xx:下载镜像。
- docker rm :卸载安装的容器。
- docker rmi :删除镜像。
- docker run 【】image:新建容器并启动。
- –name 设置容器名,用来区分容器
- -d 后台启动。
- -p [主机端口:容器端口] 指定容器端口。
- -v 挂载容器外部配置文件,因为修改容器内配置文件十分麻烦,需要进入 等。
- docker exec -it xx bash:进入正在运行的容器,容器内目录结构和linux相似。
- exit:推出容器。
- docker logs:查看日志
- docker top:查看容器详细信息。
- docker cp :从容器中拷贝文件到虚拟机。
- docker stats:查看cpu内存。
- docker commit:提交容器成为一个新的镜像。
- docker volume ls: 查看挂载情况。
- docker inspect : 查看容器信息,json格式,信息全面。
- docker history : 镜像构建历史。
Docker 部署的过程
以nginx为例
- docker search nginx
- docker pull nginx
- docker run -d --name nginx01 -p 3344:80。
容器数据卷
容器之间数据共享的技术。容器持久化和同步操作。
目录从容器挂载到linux上。
docker run -v 主机目录:容器目录。双向绑定。可以+ :ro(容器只读) rw(默认)设定读写权限。
容器删除后,本地挂载的不会删除,从而实现持久化。
匿名挂载:挂载的时候只写了容器目录,没写linux下的目录。
具名挂载:写了。
Dockerfile
用来创建镜像的脚本文件。
指令:
- FROM: 基础镜像。scratch
- MAINTAINER:作者。
- RUN:镜像构建需要运行的命令。
- ADD: 搭建tomcat等压缩包附加条件。
- WORKDIR:工作目录。
- VOLUME:挂载目录。
- EXPOSE:暴露端口。
- CMD:指定容器运行的命令。只有最后一个生效。
- ENTRYPOINT:指定容器运行命令,可以追加。
- ONBUILD:触发指令。
- ENV:环境变量。
创建安装了vim指令centos的镜像。
FROM centos
MAINTAINER yao<232323@qq.com>
ENV MYPATH /user/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "------end------"
CMD /bin/bash
docker build -f dockerfile文件 -t 镜像名:[tag]
springboot编写一个hellocontroller打包镜像。
FROM java:8
COPY *.jar /app.jar
CMD ["---server.port=8080---"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
docker build -t hellodk .
Docker流程回顾

docker会给每个容器分配ip地址。linux可以ping同docker容器内部ip。桥接。
总结
docker主要需要了解镜像,容器,仓库这三个概念以及关系,仓库好比应用市场,镜像就是安装包,容器就是安装好的app,还有一些基本命令,挂载的使用对于修改配置文件等十分友好。
本文深入探讨Docker的核心概念,包括镜像、容器与仓库之间的关系,并介绍如何使用Docker进行部署,涵盖常用命令及Dockerfile的编写技巧。
11万+

被折叠的 条评论
为什么被折叠?



