Docker 学习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | Docker 学习 自己边学边整理了一些命令 -- 镜像容器相关 -- 搜索镜像 docker search nginx -- 镜像名称:版本,下载指定版本的镜像,默认是最新版本 docker pull nginx: 1.24 -- 创建名称为test01 的容器,-d 以后台的形式运行,-P 自动分配端口号。 -p port1:port2 1 是宿主机端口, 2 是容器端口 nginx: 1.24 是指定版本的镜像名称 docker run --name=test01 -dp 80 : 80 nginx: 1.24 -- 查看运行中的容器 docker ps -- 查看所有容器(运行+停止) docker ps -a -- 删除一个容器 docker rm -f 容器ID -- 停止/启动一个容器 docker stop/start 容器ID -- 进入容器,方法 1 docker exec -it 容器ID /bin/bash -- 进入容器,方法 2 此方法 ctrl+c 退出容器,容器自动退出并停止 docker attach 容器ID -- 容器commit 生成镜像,-m:提交的注释,-a:提交的作者 后面是容器ID,最后是镜像名称和tag 名称 docker commit -m= 'nginx2023' -a= 'yang-nginx' 942a1888d880 nginx2023: 1.24 - 2023 -- 查看容器资源使用情况 docker stats -- 查看文件并显示文件大小 ls -lh -- 卷挂载相关 -- 卷挂载 -v 外部目录:容器目录。 -- 具名挂载,就是只指定目录名字而没有具体目录, 通常会放到 "/var/lib/docker/volumes/nginx2023/_data" _data下面就是映射容器/etc/nginx目录。 目录下的文件互相同步,保持一致。-v 也可以添加参数:ro 或者:rw 来对映射文件进行读写限制。 例如-v nginx2023:/etc/nginx:ro 表示只读。 docker run -d -p 80 : 80 -v nginx2023:/etc/nginx --name nginx202305 nginx2023: 1.24 - 2023 -- 匿名挂载,就是-v 不指定外部目录地址,docker 会生成一个随机名称, 实际外部地址目录,同具名挂载一样,只是目录名随机 "/var/lib/docker/volumes/*****/_data" docker run -d -p 80 : 80 -v /etc/nginx --name nginx202305 nginx2023: 1.24 - 2023 -- 查看容器配置相关 Mounts Source项就是映射的外部目录位置,Mounts Destination是容器外部位置 docker inspect 64c6b9e3cbd8(容器ID) -- 查看某个容器卷挂载情况 docker inspect nginx2023(容器name) -- 查看所有卷的挂载情况 docker volume ls -- Dockerfile -- 创建一个镜像文件,文件名是Dockerfile 创建镜像时不用添加 -f 指定,如果是其他的名称,需要这样写 -f xxxxx touch Dockerfile -- Docker文件内部代码 FROM:指定基础镜像,可以是多个 MAINTAINER:作者+邮箱 ENV:镜像运行环境变量 WORKDIR:工作目录,就是进到容器后默认cd 到该目录 RUN 服务器需要执行的命令 EXPOSE 指定向外暴露的端口 ADD 将准备好的文件复制到容器内,压缩文件在移动的同时会自动解压 FROM centos: 7 MAINTAINER yangyinshen<yangyinshen1024 @163 .com> ENV MYPATH /usr/local WORKDIR $MYPATH ADD apache-tomcat- 8.5 . 89 .tar.gz $MYPATH ADD jdk-8u361-linux-x64.tar.gz $MYPATH ENV JAVA_HOME $MYPATH/jdk1. 8 .0_361 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME $MYPATH/apache-tomcat- 8.5 . 89 ENV CATALINA_BASE $MYPATH/apache-tomcat- 8.5 . 89 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib EXPOSE 8080 CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out -- Dockerfile 创建镜像命令,后面的. 是必须要的,后面就是启动容器了,跟上面一样 docker build -t -f Dockerfile tomcat202301: 1.0 . -- 进入容器 docker exec -it 容器ID /bin/bash -- 如何Docker 使用的是alpine版(缩减版)它没有bash shell,需要使用/bin/bash docker exec -it cad20c4bedd8 /bin/sh -p 11000 : 11000 #!/bin/bash # 构建docker镜像 tag=`date -d today + "%Y-%m-%d_%H" ` name= "visual-connection-1.0.0" image= "$name:$tag" echo "开始构建镜像:$image" docker build -t $image . # 删除老的容器 docker rm -f $name old_image=`docker ps |grep $name` echo "原有运行镜像:$old_image" stop_image=`docker rm -f $old_image` echo "停止原有运行镜像:$stop_image" echo "运行镜像:$image" port= 9185 docker run -dp 9186 : 9185 -p 12000 : 11000 --name=visual-connection- 1.0 . 2 --restart=always -v /data/logs/visual-connection- 1.0 . 2 :/data/logs/visual-connection- 1.0 . 2 visual-connection- 1.0 . 0 : 2023 - 05 -18_10 #docker ps docker logs -fn 1000 $name |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律