首页 > 其他分享 >Docker 学习

Docker 学习

时间:2023-05-26 19:34:15浏览次数:40  
标签:容器 name -- 学习 nginx 镜像 Docker docker

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<[email protected]>
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

  

标签:容器,name,--,学习,nginx,镜像,Docker,docker
From: https://www.cnblogs.com/isyysblog/p/17435633.html

相关文章

  • 【笔记】macbook m2 芯片中使用 gcc docker 镜像来交叉编译
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯一个c程序,如何在macbookm2芯片的笔记本上,编译成linuxamd64的二进制格式呢?用gcc的docker镜像轻松的解决了这个问题:#下载gcc镜像,并且是linuxamd64......
  • 学习日记——Java循环结构
    1.while循环①语法:while循环语法//参数的初始化inti=1;//循环条件while(i<10){//循环操作System.out.println("这是测试");//变更参数i++;}特点:先判断,再执行②实战案例:2.dowhile循环①语法:dowhile语法 //初始化参数inti=0;do{......
  • Docker 镜像减少体积的思路和方法
    Docker镜像减少体积的思路和方法背景有一个项目感觉镜像有点大这边同事喊着一起帮忙处理一下.今天基本上就在客户现场进行处理了.想着应该把自己想到的东西整理一下.整体思路1.清理dockerfile同级目录内的文件,仅保留必须文件dockerbuild时会进行sendfile的......
  • 软件测试学习路线
    1.功能测试用例,测试流程。测试报告,jira,测试项目(app和web)2.web测试:F12调试查看接口请求响应3.app测试:adb、monkey测试,fiddle抓包,性能、安全测试4.接口自动化:postman、jmeter性能测试5.mysql、linux6.appuim、selenium7.加测试项目......
  • 系统化学习前端之Vue(vue2)
    前言vue2截止2023年12月31日不再维护更新,将全面拥抱vue3了。vue2vue2是一个实现UI层的渐进式js框架。vue2本质是一个类,可以配置optionsAPI实例化为一个vm对象,通过模板编译处理成虚拟DOM,对比更新后生成真实DOM并挂载至页面中,实现页面渲染,相较于原生js......
  • 【安全学习之路】Day9
    今天nss的题估计不会做了,晚点看看ciscn以前的题(萌新第一次参赛,看看强度)......
  • docker 安装elasticsearch7.9 和 SkyWalkin
    1、相关地址:官网:https://skywalking.apache.org/下载:https://skywalking.apache.org/downloads/Github:https://github.com/apache/skywalking文档:https://skywalking.apache.org/docs/main/v9.1.0/readme/ 其他版本文档,先进https://skywalking.apache.org/docs/main/,选择版本,查......
  • 线段树学习总结
    线段树入门线段树的概念线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组......
  • docker 快速部署 Jenkins
    version:'3'services:jenkins:image:jenkins/jenkinscontainer_name:myjenkinsrestart:alwayshostname:myjenkins_hostports:-18181:8080#界面端口-18182:50000#apivolumes:-./jenkins_mount:/var......
  • Windows驱动开发学习记录-使用Inf安装过滤驱动时自动添加注册表相关内容
     做过滤驱动时一般需要在相关class驱动里添加过滤信息,即LowerFilters或者UpperFilters,比如disk类的注册表当前信息,如下图:一个常规的inf文件如下所示:;;USBFilter.inf;[Version]Signature="$WINDOWSNT$"Class=TOASTERClassGuid={B85B7C50-6A01-11d2-B841-00C04FAD517......