docker笔记2 📅 2026/7/23 22:09:38 1.容器数据卷用于容器内的数据在容器外宿主机的持久化和同步相当于同一宿主机内的容器间的数据共享。注意新版用--mountdocker run -it -v [宿主机路径]:[容器内路径] [镜像名]docker ps 获取容器iddocker inspect [容器id]例子Use containerized databases | Docker Docsdocker search mysqldocker pull mysql:5.7docker run -d -p 3306:3306 -v /home/mysql/conf:/etc./mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD12345 --name myMysql mysql:5.7匿名挂载-v 容器内路径 不写宿主机路径docker run -d -p --name -v /etc./mysql mysql具名挂载docker run -d -p --name -v [卷名]:/etc./mysql mysql查看数据卷docker volume lsdocker volume inspect [卷名]卷的读写权限ro #readonlydocker run -d -p --name -v [juming]:/etc./mysql:romysqlrw #readwritedocker run -d -p --name -v [juming]:/etc./mysql:rwmysql2.DockerFile用来构建docker镜像的构建文件命令脚本通过脚本生成镜像1.创建DockerFile_test文件,文件中的内容大写FROM centosVOLUME [volume01,volume02] #挂载数据卷目录CMD echo ---end---CMD /bin/bash2.docker build -f [DockerFile_test的全路径] -t [镜像名]:[TAG(如1.0)]3.docker run -it [镜像名]4.docker push #发布镜像3.DockerFile构建过程每个指令都是大写执行从上而下顺序执行#表示注释每一个指令都会创建提交一个新的镜像层并提交dockerfile是面向开发通过dockerfile构建dockerimages然后用docker容器运行DockerFile指令FROMMAINTAINERRUNADDWORKDIRVOLUMEECPORTCMDENTRUPOINTONBUILDCOPYENV实战FROM centosMAINTAINER [作者]COPY a.txt /usr/local/a.txtADD jdk-8u11-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.22.tar.gz /usr/local/RUN yum -y install vimENV MYPATH /usr/localWORK $MYPATHENV JAVA_HOME /usr/local/jdk1.8.0_11ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh tail -f /url/local/apache-tomcat-9.0.22/bin/logs/catalina.out4.流程编写dockerfile-通过dockerfile构建镜像-运行镜像5.数据卷容器docker run -it --name docker01 [镜像名]:[TAG]docker run -it --name docker02--volumes-from docker01[镜像名]:[TAG] #相当于继承docker016.提交镜像官方的和阿里云的7.Docker网络(容器互联)ip addr #查看网卡#veth-pair--linkdocker network lsdocker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet #自己定义的网络docker run -d -P --name tomcat01 --net mynet tomcatdocker run -d -P --name tomcat02 --net mynet tomcatdocker network inspect mynetdocker run -d -P --name tomcat03docker network connect mynet tomcat038.Docker Compose9.Docker Swarm10.CI/CD