当前位置: 首页 > 后端技术 > Java

从搭建到上手,快速了解如何玩转Docker

时间:2023-04-01 23:55:46 Java

为什么Docker会把一套完整的环境打包成镜像,免去重复配置环境和解决环境带来的各种问题。Docker容器是进程隔离的,谁也不会影响谁。与传统的VM虚拟化方式相比,Docker具有启动速度快、资源利用率高、性能开销低等优点。Docker中的概念镜像(Image):Docker镜像(Image)相当于一个ISO文件系统。例如Centos官方镜像CentOS-7-x86_64-DVD-2009.iso包含了完整的centos操作系统环境。Container:Image和Container的关系就像java面向对象编程中类和实例的关系。图像是类的定义,容器是图像运行时的??实例。容器可以创建、启动、停止、删除、暂停等操作。仓库(Repository):仓库可以看作是存储镜像的代码控制中心。CentOS7安装Dokcer设置Docker镜像源yuminstall-yyum-utilsyum-config-manager\--add-repo\http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装Docker社区版yuminstalldocker-cedocker-ce-clicontainerd.iostartDockersystemctlstartdockerroutinehelloworld:dockerrunhello-worldDokcercommoncommandimagecommanddockerimages//列出本地主机上的所有镜像dockersearch[imagename】//搜索镜像dockerpull[镜像名]//拉取镜像dockerrmi-f[镜像名]//删除单个镜像dockerrmi-f[镜像名1镜像名2]//删除多个镜像dockerrmi-f$(dockerimage-q)//删除所有镜像容器命令dockerrun-it[imagename]//以交互模式启动容器dockerrun-d[imagename]//以后台模式启动容器dockerrun-d-p随机端口映射,容器内部端口随机映射到宿主机的端口dockerrun-d-p指定端口映射,格式为宿主机端口:容器端口dockerps//列出当前运行的containersexit//容器停止退出ctrl+p+q//容器不停止退出dockerstart[containerid/containername]//(退出容器后)启动容器dockerrestart[containerid/containername]]//重启容器dockerstop[containerid/containername]//停止容器dockerkill[containerid/containername]//强制停止容器dockerrm[containerid]//删除容器dockerrm-f$(dockerps-a-q)//删除所有容器dockerps-a-q|xargsdockerrm//删除所有容器dockerattach【containerid】//以交互方式进入正在运行的容器dockerexec-it【containerid】【bashshell】//可以直接运行命令得到结果,跳过进入容器的步骤。dockercommit[containerid][imagename:versionnumber]//从容器创建一个新的镜像。更多命令:#Docker命令百科Docker容器数据卷容器数据卷可用于存储Docker应用程序的数据也可用于Docker容器间的数据共享使用命令添加容器数据卷dockerrun-d-vhostfile绝对路径:容器文件绝对路径【镜像名称】使用DockerFile通过DockerFile添加容器数据卷用VOLUME创建镜像,然后创建容器自动挂载VOLUME目录到宿主机默认目录VOLUME["dataVol1","dataVol2"]从另一个容器run-d--volumesfrom[containername][mirrorname]将已经创建的数据卷docker挂载到容器中DokcerFileDockerFile是用于构建Docker镜像的构建文件。它是由一系列命令和参数组成的脚本dockerbuild-f[dockerFilepath]-t[mirrorname]:版本号。相关说明:#DockerDockerfile使用Docker安装redis拉取镜像dockerpullredis:3.22。在本地新建一个redis.conf,目的是将这个配置文件的内容映射到docker中的redis配置文件中mkdir-p/opt/redis/confcd/opt/redis/conftouchredis.confsetpasswordstartcontainerdockerrun-p6379:6379-v/opt/redis/data:/data-v/opt/redis/conf/redis.conf:/etc/redis/redis.conf-dredis:3.2redis-server/etc/redis/redis.conf--appendonlyyes连接redis