首页 > 其他分享 >Docker 必知必会2----跟我一步步来执行基本操作

Docker 必知必会2----跟我一步步来执行基本操作

时间:2024-05-10 16:12:17浏览次数:14  
标签:容器 00 tomcat 必知 ---- 镜像 基本操作 docker root

通过前文(https://www.cnblogs.com/jilodream/p/18177695)的了解,我们已经大致明白了什么是docker,为什么要用docker,以及docker的基本设计思路是什么。
今天来看下,docker的基本操作有哪些?

1、linux下安装docker
首先我们来安装docker,
如下是使用centos 7的安装办法,其他系统可以自行搜索,都不是很复杂

 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# yum -y install docker
 2 Loaded plugins: fastestmirror
 3 Determining fastest mirrors
 4 base                                                                                                                               | 3.6 kB  00:00:00     
 5 docker-ce-stable                                                                                                                   | 3.5 kB  00:00:00     
 6 epel                                                                                                                               | 4.3 kB  00:00:00     
 7 extras                                                                                                                             | 2.9 kB  00:00:00     
 8 kubernetes                                                                                                                         | 1.4 kB  00:00:00     
 9 updates                                                                                                                            | 2.9 kB  00:00:00     
10 (1/6): epel/x86_64/updateinfo                                                                                                      | 1.0 MB  00:00:00     
11 (2/6): epel/x86_64/primary_db                                                                                                      | 8.7 MB  00:00:00     
12 (3/6): extras/7/x86_64/primary_db                                                                                                  | 253 kB  00:00:00     
13 (4/6): epel/x86_64/group                                                                                                           | 399 kB  00:00:00     
14 (5/6): updates/7/x86_64/primary_db                                                                                                 |  27 MB  00:00:00     
15 (6/6): docker-ce-stable/7/x86_64/primary_db                                                                                        | 148 kB  00:00:00 
16 
17 后续省略

 

安装好docker之后,通过检测docker版本的办法,查看docker 是否已经安装成功。

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker -v
2 Docker version 26.0.0, build 2ae903e

在安装完docker 之后,如果是国内服务器的话,我们常常还需要配一个国内的docker仓库镜像地址:vi /etc/docker/daemon.json

 1 vi /etc/docker/daemon.json
 2 
 3 #填写如下json信息
 4 {
 5   "registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"],
 6   "exec-opts": ["native.cgroupdriver=systemd"]
 7 }
 8 
 9 
10 # wq 保存文件后
11 #保存ok之后,重启docker 服务
12 systemctl restart docker

2、查询docker 镜像

安装好docker 之后,我们来查看镜像,我们以tomcat为例
如下,查询出相应的镜像:

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker search tomcat
2 NAME                                            DESCRIPTION                                     STARS     OFFICIAL
3 tomcat                                          Apache Tomcat is an open source implementati…   3667      [OK]
4 tomee                                           Apache TomEE is an all-Apache Java EE certif…   115       [OK]
5 bitnami/tomcat                                  Bitnami container image for Tomcat              50  

3、获取docker镜像
确定好有所需镜像后(不是必要操作),我们直接拉取镜像:

 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker pull tomcat
 2 Using default tag: latest
 3 latest: Pulling from library/tomcat
 4 0e29546d541c: Pull complete 
 5 9b829c73b52b: Pull complete 
 6 cb5b7ae36172: Pull complete 
 7 6494e4811622: Pull complete 
 8 668f6fcc5fa5: Pull complete 
 9 dc120c3e0290: Pull complete 
10 8f7c0eebb7b1: Pull complete 
11 77b694f83996: Pull complete 
12 0f611256ec3a: Pull complete 
13 4f25def12f23: Pull complete 
14 Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
15 Status: Downloaded newer image for tomcat:latest
16 docker.io/library/tomcat:latest

如上就代表我们已经将镜像拉去到本地了。

4、查看本地docker 镜像
有时我们需要查看一下本地是否已经有拉取好的某个镜像,可以如下操作:
第一列为镜像名称
第二列为tag,相当于版本号,一般latest为最新版,默认下载的镜像,都是最新版,如果想指定镜像tag则可以使用
docker pull 镜像名:tag 的形式拉取
第三列为镜像id,如果相同,则可以说明这两个镜像是相同的
第四列为镜像的创建时间(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
第五列镜像的大小

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images 
2 REPOSITORY                     TAG       IMAGE ID       CREATED       SIZE
3 tomcat                         latest    fb5657adc892   2 years ago   680MB
4 gcr.io/kuar-demo/kuard-amd64   blue      1db936caa6ac   5 years ago   23MB
5 gcr.io/kuar-demo/kuard-amd64   latest    1db936caa6ac   5 years ago   23MB

5、运行docker容器
镜像下载好之后,如果想要运行,我们需要创建相应的容器:

docker run 为运行容器命令
-d 代表后台执行
-p 表示端口映射,也就是将本机的4321端口,映射到容器的8080端口(tomcat默认端口),这样当外界请求访问本机时,会自动请求到容器的8080端口上
--name 表示容器的名称,
tomcat 表示使用的镜像为tomcat(如有多个需要指定tag版本号)
创建好之后会给我们返回一个随机的字符串。

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker run -d  -p 4321:8080 --name mytomcat01 tomcat 
2 127ce6e75e9c62c84bea139ff7e14e9c5cb0f55554430c9265ce9cb74a160bd1

6、查看docker容器,详细信息
启动好tomcat 容器后,我们来查看容器的状态

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker ps
2 CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS                    NAMES
3 127ce6e75e9c   tomcat    "catalina.sh run"   7 minutes ago   Up 7 minutes   0.0.0.0:4321->8080/tcp   mytomcat01

注意这里只能看到部分运行中容器,有时我们想要看已经停止的容器,可以使用
docker ps -a

除此之外,我们还可以使用docker inspect 的命令来查看容器更详细的内容,不过这个命令暂时我们用不到,先跳过。

7、进入docker 容器
创建好tomcat容器之后,我们需要进入到容器中进入操作:
进入容器的命令如下:
docker exec -it 容器id 运行命令,
其中 -it 表示交互式操作 ,运行命令表示进入容器后,先行的执行命令,因为我们都是要做后续bash操作,所以一般都是接 /bin/bash 或者 /bin/sh
进入以后就是一个微型的linux虚拟机了,我们修改下tomcat的webapps文件,保证tomcat可以正常可用

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker exec -it 127ce6e75e9c /bin/bash
2 root@127ce6e75e9c:/usr/local/tomcat# ls
3 BUILDING.txt     LICENSE  README.md     RUNNING.txt  conf  logs        temp     webapps.dist
4 CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work
5 root@127ce6e75e9c:/usr/local/tomcat# rm -rf webapps
6 root@127ce6e75e9c:/usr/local/tomcat# mv webapps.dist webapps
7 root@127ce6e75e9c:/usr/local/tomcat# exit

注意退出容器后,我们使用exit命令退出。之后我们通过浏览器,访问我们创建的tomcat容器:(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
http://linux宿主机Ip:4321/

8、停止、重启docker容器
这三个命令就不讲了,很简单
docker stop 容器id
docker restart 重启id
docker start 启动停止状态的容器

9、删除docker容器、镜像
清理磁盘空间或出于安全原因,我们通常需要移除镜像和容器
docker rm 容器id #使用此命令来移除容器
docker rmi 镜像id #使用此命令来移除镜像
注意移除镜像前,必须要先移除掉所有直接使用该镜像的容器,否则会删除不成功(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )

10、修改镜像tag
我们通常会修改镜像tag 来适配版本发布的节奏
docker tag 镜像id 镜像名称:新tag

1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker tag fb5657adc892 tomcat:my-tomcat-image
2 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images
3 REPOSITORY                     TAG               IMAGE ID       CREATED       SIZE
4 tomcat                         latest            fb5657adc892   2 years ago   680MB
5 tomcat                         my-tomcat-image   fb5657adc892   2 years ago   680MB

注意看两个镜像的镜像id是一致的,但是镜像tag不一样

 

上述就是docker 最基本的一些操作,汇总来看就是这个样子:

镜像版:

容器版:

 

docker的命令还有很多,而且我介绍的命令也是这些操作中最常用的用法。由于篇幅和能力有限无法全面介绍到,大家有需要只能根据实际需要自行搜索,或者help查看文档

标签:容器,00,tomcat,必知,----,镜像,基本操作,docker,root
From: https://www.cnblogs.com/jilodream/p/18184687

相关文章

  • 多机操作系统
    受长久以来市场宣传的影响,目前的操作系统被定义在“单机操作系统”范畴里。即运行在一台计算机上,管理一台计算机的软硬件资源,应用软件使用本地硬件资源的操作系统。操作系统的另一种范式:多机操作系统,却很少有人知道和研究。多机操作系统是借助网络连接,运行在多台计算机、管理多台......
  • 使用Alibaba代码规约插件优化代码
    一、实验题目:代码审查二、实验目的 1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查;2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。三、实验内容1、IDEA环境和PyCharm环境二选一;IDEA环境(1)预先准备在IDEA环境下实现对输入的n个整数进......
  • docker学习
    rm-fr/etc/yum.repos.d/local.repocurl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repowget-O/etc/yum.repos.d/docker-ce.repohttps://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.reposed-i's#download.......
  • 蓝桥杯训练第二周
    P2015二叉苹果树-洛谷|计算机科学教育新生态(luogu.com.cn)屮,一开始想当然的以为剪掉了其中一个边,其子树部分全部都会脱落,没想到剪掉一个边紧紧只是剪掉一个边,子树不会消失很明显的,我们要考虑树形$dp$,因为剪掉哪条边是不确定的,那么暴力求的话,每条边都剪或不剪,时......
  • Electron桌面应用
    Electron介绍Electron集成了chromium(支持最新特性的浏览器)与Node.js(javascript运行时,可实现文件读写)NativeAPI是(提供统一原生界面操作的能力)工作流程:启动APP启动主进程,创建窗口,加载指定界面,开启渲染进程,渲染进程需要进行通信(如新增歌曲打开文件夹选择MP3文件)需通过主进程调用......
  • 致敬经典永垂不朽@Microsoft Windows
    1、MS-DOS7.10 2、Windows3.1 3、Windows3.2 4、WinNT4.0 5、Windows95 6、Windows98 7、Windows2000 8、WindowsME 9、WindowsVista 10、WindowsXP 11、Windows8 12、Windows10 13、Windows11 ......
  • 跨域问题
    浏览器同源策略它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现,是浏览器对访问到的结果进行了拦截。请求的url地址,必须与浏览器上的url地址处于同域上,也就是......
  • Hash
    对于一个主串和一个子串,我们想知道它们是否匹配,暴力肯定不可取,如果我们用一个数来表示它们中的每一个字符以及子串呢?字符串hash就出现了\(f(s)=s[1]*base^{len-1}+s[2]*base^{len-2}+…+s[len]*base^{0}\)很显然,字符串的hash值的计算是类比于十进制数的个十百位叠加,而不是单纯的......
  • bzoj4399: 魔法少女LJJ
    先上头图:诈骗题认真读题c<=7 只需要考虑前七个操作一.动态开点即可二.线段树合并三.四.对于这两个操作,可以先统计出有多少个数小于/大于x,然后删除所有小于/大于x的数,并在x位置加上这些数五.下放标记查询即可六.每个数最大为1e9,直接乘肯定会炸,所以可以用double存它们的......
  • vue3 vite项目H5页面 ios13进入页面出现白屏问题
    项目中碰见IOS系统进入页面出现白屏问题,记录一下问题排查过程一、页面可能报错进入页面是白屏,页面的 vconsole 也没有显示,首先想到的是页面是不是有什么报错,然后查看了别的机型,都没有问题,定位到只有IOS13有问题,想着会不会是什么语法在IOS13不兼容(这个问题之前出现过一个......