当前位置: 首页 > Linux

记录一下本次使用的docker

时间:2023-04-06 01:50:25 Linux

一、简介Docker是一个开源的应用容器引擎;它是一种轻量级的容器技术;Docker支持将软件编译成镜像;然后在镜像中配置各种软件,发布镜像,其他用户可以直接使用这个镜像;运行的镜像称为容器,容器启动非常快。2、核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用于保存各种打包好的软件镜像;docker镜像(Images):软件打包镜像;放置在docker仓库;docker容器(Container):镜像启动后的实例称为容器;一个容器是一个或一组独立运行的应用3、安装Docker1检查内核版本,必须是3.10或以上uname-r2以root权限登录Centos。确保yum包更新到最新(否则会报错)yumupdate3安装依赖yuminstall-yyum-utils\device-mapper-persistent-data\lvm24installdockeryuminstalldocker5checkdockerversiondockerversion6startdockersystemctlstartdocker7setdockertostartsystemctlenabledocker8测试安装效果Docker的简单应用---HelloWorld从仓库抓取名为hello-world的镜像文件到本地。dockerpullhello-worldrundockerrunhello-world正确效果:9closedockersystemctlstopdocker10restartDockerservicedockerrestart4、Docker常用命令&操作4.1镜像操作https://hub.docker.com/4.2、容器操作(安装mysql为例)搜索镜像dockersearchmysqlpull镜像(下载)dockerpullmysql如果需要选择版本,如:dockerpullmysql:8.0start(做端口映射)dockerrun-p3306:3306--namemysql02-eMYSQL_ROOT_PASSWORD=123456-dmysql----------mysql02:设置容器的名称,可自行设置。-p:将容器内部使用的网络端口映射到我们使用的主机上。-d:让容器后台运行,设置root用户默认密码为123456进入容器dockerexec-it容器ID/bin/bash登录mysqlmysql-uroot-p123456mysql远程登录相关Navicat远程连接错误:授权远程连接(注意mysql8.0不同于之前的授权方式)AuthorizeGRANTALLON*.*TO'root'@'%';Refreshprivilegesflushprivileges此时还不能远程访问,因为Navicat只支持老版本的加密,需要更改mysql的加密规则更改加密规则ALTERUSER'root'@'localhost'IDENTIFIEDBY'password'密码永不过期;更新root用户密码ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'123456';刷新权限刷新权限;OK,设置完毕,再次使用Navicat连接数据库其他容器常用命令:1.查看正在运行的容器dockerps2.停止正在运行的容器dockerstopcontainerid3.查看所有容器dockerps-a4.启动containerdockerstartcontainerid5.删除一个容器dockerrmcontainerid6.查看容器日志dockerlogscontainer-name/container-id7.查看容器日志dockerlogscontainer-name/container-id8.更多命令见https://docs.docker.com/engine/reference/commandline/docker/4、卸载dockeryumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-selinux\docker-engine-selinux\docker-engine5,Dockerfile直接看这里文章作者:白拿笨Dockerfile详细解释中文文档:http://www.dockerinfo.net/doc...Dockerfileinstalljdk1。官网下载jdk2。上传到服务器并解压3.与解压jdk同级目录下新建一个Dockerfile,文件内容为:#imagesbasicimageFROMcentos#MAINTAINERauthorinformationMAINTAINERchy#复制你解压的java目录到容器目录ADDjdk1.8.0_211/work/java#配置环境变量ENVJAVA_HOME/work/javaENVCLASSPATH.:$JAVA_HOME/lib.tools.jarENVPATH$JAVA_HOME/bin:$PATH4,运行安装命令执行直接在这个目录下(同上目录)dockerbuild-tjdk:8.#jdk:8settings镜像的名称和标签#。表示Dockerfile在当前文件夹,也可以用绝对路径表示5.成功,查看镜像6.运行创建的镜像[root@localhostjava]#dockerrun-p80:80-d-ite0f4d74150fe/bin/bash22d7228521019c7ccc275a1a59890e5f10917b2432d675700b7d2ea390e57c6e注意:创建在使用容器的时候一定要使用-it/bin/bash的方式,否则jdk容器将无法运行并开启80端口,因为你的项目jar可能是80端口,所以一定要注意防火墙。如果您运行这样的错误COMMAND_FAILED:'/sbin/iptables-tnat-ADOCKER-ptcp-d0/0--dport80-jDNAT--to-destination172.17.0.6:80!-idocker0'失败:iptables:没有该名称的链/目标/匹配项。然后执行以下命令,成功后再次创建容器pkilldockeriptables-tnat-Fifconfigdocker0downbrctldelbrdocker0Restartdocker解决servicedockerrestart版权声明:本文为博客主要原创文章遵循CC4.0BY-SA版权协议。转载请附上原文出处链接及本声明。本文链接:https://blog.csdn.net/ycl111/article/details/490289657。进入容器查看java版本[root@localhostjava]#dockerexec-it22d722852101/bin/bash[root@22d722852101/]#java-versionjavaversion"1.8.0_211"Java(TM)SERuntimeEnvironment(build1.8.0_211-b12)JavaHotSpot(TM)64-BitServerVM(build25.211-b12,mixedmode)那我们如何发布jar工程1.上传工程jar到物理机2.复制jar到物理机机器到容器,如:dockercp/usr/local/java/blog30752fd727f1:/usr/local/java//usr/local/java/blog:物理机的jar文件所在目录/usr/local/java/:需要先进入容器,在容器中创建这样一个目录:mkdir-p/usr/local/java30752fd727f1:容器id,必须跟上:3.然后在里面执行java-jar命令容器