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

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

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

安装好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查看文档

Docker 必知必会2----跟我一步步来执行基本操作的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  3. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  4. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  5. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  8. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  9. 0005 《SQL必知必会》笔记01-SELECT语句

    1.SELECT基本语句: SELECT 字段名1,···,字段名n FROM 表名 2.检索所有字段,用"*"替换字段名,这会导致效率低下 SELECT * FROM 表名; 3 ...

  10. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

随机推荐

  1. 运维排查 | Systemd 之服务停止后状态为 failed

    哈喽大家好,我是咸鱼. 我们知道 CentOS 7 之后,Systemd 代替了原来的 SystemV 来管理服务,相比 SystemV ,Systemd 能够很好地解决各个服务间的依赖关系,还能让所 ...

  2. #贪心#洛谷 6927 [ICPC2016 WF]Swap Space

    题目 分析 可以发现能将硬盘容量变大的优先,这种硬盘就是以格式化前的大小升序排序. 然后如果硬盘容量变小,那就是先填格式化后较大的硬盘(因为装完可以提供较大的空间) 代码 #include <c ...

  3. #计数,记忆化搜索#C 连边方案

    分析 设\(dp[i][j][k][l]\)表示处理到\([i-l+1,i]\)的连边,二进制状态(奇点还是偶点)为\(k\)的方案数, 最后一维是为了避免算重,那么如果第\(i-l+1\)位是偶点可 ...

  4. #模拟#U137456 数字

    题目 牛牛和他的小伙伴们高高兴兴的吃完了蛋糕,吃完蛋糕之后就到了牛牛和他的小伙伴们最喜欢的环节了--猜数 字, 这次是牛牛的生日,大家决定让牛牛来制定规则,由于牛牛的生日是4月7日,所以牛牛特别喜欢数 ...

  5. Jchardet——支持检测并输出文件编码方式的组件

      简介 Jchardet是OpenAtom OpenHarmony(以下简称"OpenHarmony")系统的一款检测文本编码的组件.当上传一个文件时,组件可以检测并输出该文件中 ...

  6. 【直播回顾】OpenHarmony知识赋能第八期:手把手教你实现涂鸦小游戏

     OpenHarmony第八期知识赋能直播已经在9月29日圆满落幕!从9月15日起,资深OS框架开发工程师巴延兴老师于每周四进行分享,通过实现涂鸦小游戏来帮助大家全面了解ArkUI框架的应用,拓宽知识 ...

  7. Windows wsl2安装Ubuntu

    wsl(Windows Subsystem for Linux)即适用于Windows的Linux子系统,是一个实现在Windows 10 / 11上运行原生Linux的技术. wsl2 为其迭代版本 ...

  8. SEO — 搜索引擎优化

    一.多词排名标题设置 SEO(Search Engine Optimization)是指搜索引擎优化,即利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名 优化目的是:让网站在搜索引擎上的曝光率达到 ...

  9. linux 性能自我学习 ———— 软中断 [五]

    前言 linux 性能的自我学习. 正文 什么是软中断呢? 举一个网络的例子. linux 将中断处理过程分为两个阶段: 上半部用来快速处理中断,他在中断禁止模式下运行,注意是处理跟硬件紧密相关或时间 ...

  10. ActiveMQ c# 系列——实例(二)

    前言 前面一章中介绍了activemq,并且呢安装了. 这一章就来看一下实例吧. 正文 我使用队列举例. 是这样子,队列是一对一的关系,比如说我生产了一条消息,那么只要有一个消费者消费完毕那么就算消费 ...