在不想弄乱本地及其环境下该如何进行系软件的安装?

  1. 下载安装docker工具
  2. 获取该软件的docker镜像(你以后想要用各种工具,基本都能够搜索docker search nginx:版本号到合适的镜像去用),如:下载nginx镜像docker pull nginx
  3. 运行镜像,然后启动一个容器,这个nginx服务就运行在容器中 docker run -p 80:80 --name nginx -d nginx
  4. 停止容器docker stop nginx,删除该镜像docker rmi nginx,你的电脑就好像没有使用过nginx一样。就好比沙箱环境
  5. 查看下载好的docker镜像docker images,查看具体的镜像docker images nginx

一、docker镜像的获取、查看、删除

  • 获取镜像
# 查看docker镜像存储位置
[root@localhost ~]# docker info|grep Root
Docker Root Dir: /var/lib/docker
[root@localhost ~]# ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ -l
总用量 32
-rw-------. 1 root root 2142 1月 3 13:28 5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
-rw-------. 1 root root 7656 12月 29 22:36 605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
-rw-------. 1 root root 7700 1月 3 11:16 7614ae9453d1d87e740a2056257a6de7135c84037c367e1fffa92ae922784631
-rw-------. 1 root root 2794 1月 3 13:24 afb6fca791e071c66276202f8efca5ce3d3dc4fb218bcddff1bc565d981ddd1e
-rw-------. 1 root root 1462 1月 3 13:22 ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
-rw-------. 1 root root 1866 1月 4 14:45 d9e50bf288963ff3a78d1decfcd1deda5acd15a0e3094c9e4b317cf8299bd465
# 打开任意文件,里面记录的是镜像和容器之间的配置关系,以json的形式存储
[root@localhost ~]# cat /var/lib/docker/image/overlay2/imagedb/content/sha256/5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
# 查找镜像,选择点赞数最多的pull
docker search centos
# 获取镜像
docker pull centos
# 使用不同镜像生成容器
# -t 开启一个交互终端,--rm 容器退出时删除该容器,容器名后面不指定版本默认运行最新的
docker run -it --rm centos bash
# 在运行一个7.8版本的
docker run -it --rm centos:7.8.2003 bash
  • 查看镜像
# 查看全部镜像
docker images
# 查看具体镜像
docker images nginx
# 格式化显示镜像 -- format是docker的模板语言,{{}}中首字母大写其余字母小写
[root@localhost ~]# docker images --format "{{.ID}}---{{.Repository}}"
605c77e624dd---nginx
7614ae9453d1---redis
# 表格形式显示信息
[root@localhost ~]# docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
  • 删除镜像
docker rmi 镜像名/镜像id
  • 删除容器
docker rm 容器id
docker rm 指定id的前三位也行

二、镜像管理

  • 批量删除镜像慎用
docker rmi `docker images -aq`
  • 批量删除容器慎用
docker rm `docker ps -aq`
  • 导出镜像命令
docker image save centos:7.8.2003 > /opt/centos7.8.2003.tgz
  • 导入命令
docker image load -i /opt/centos7.8.2003.tgz
  • 查看docker服务的详细信息
docker info
  • 查看docker镜像的详细信息
docker image inspacet 镜像id

三、容器管理

docker run 镜像名,如果镜像不存在本地,则会在线去下载该镜像
注意:容器内进程必须处于前台运行状态,否则容器就会直接退出
  • 自己部署一个容器运行,命令不得后台运行,前台运行即可。
  • 如果容器内什么事都没做,容器也会挂掉,容器内必须有一个进程在前台运行。
我们运行基础镜像,没有运行任何程序,因此容器挂掉了
# 显示所有状态的容器
docker ps -a # 1、运行一个挂掉的容器(从错误演示开始),这个写法会产生多个独立的容器记录,且容器内没有程序在跑所以挂了。
docker run centos:7.8.2003 # 2、运行容器,且进入容器内,且在容器内执行某个命令
[root@localhost ~]# docker run -it centos:7.8.2003 sh
sh-4.2#
sh-4.2# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core) # 3、开启一个容器,让他帮你运行某个程序,属于前台运行,会卡住一个终端
[root@localhost ~]# docker run centos:7.8.2003 ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=127 time=30.4 ms # 4、运行一个活着的容器,docker ps可以看到的容器
# -d 参数,让容器在后台运行(针对宿主机而言)
# 会返回一个容器id
# 后面是你需要执行的操作,保证当前容器不会挂掉
[root@localhost ~]#docker run -d centos:7.8.2003 ping www.baidu.com
487a71fc0d91245b93525ed45f6a5f8e8bf72c14150a2c35ad1e98bb0e905b9c # 5、丰富docker运行参数
# -d 后台运行
# --rm 容器挂掉后自动会删除,也就是停止容器后即使通过`docker ps -a`也无法查到该容器是否运行过
# --name 给容器起个名字
[root@localhost ~]# docker run -d --rm --name baidu centos:7.8.2003 ping www.baidu.com
8adc4e96dc7e374c1d8bd337719d3e9aa374d7baa155593e9164bba2c360251c # 6、查看容器日志,刷新日志
docker logs -f 容器id
# 查看最新的五条日志
docker logs 容器id | tail -5 # 7、进入正在运行的容器内部,并进行交互操作(bash)
docker exec -it 容器id bash
# 查看容器内进程
ps -ef # 8、查看容器的详细信息,用于高级调试
docker container inspect 容器id # 9、容器的端口映射
# -p 宿主机端口:容器内运行的端口
# -d 后台运行
# --name 容器名称
docker run -d --name nginx_80 -p 80:80 nginx # 9.1、查看端口的映射情况
[root@localhost ~]# docker port 容器id
80/tcp -> 0.0.0.0:80
80/tcp -> :::80 # 9.2、随机端都映射,一般不用
# -P 会随机应以一个宿主机的空闲端口
docker run -d --name nginx_random -P nginx # 10、容器的提交
# 运行基础的centos:7.8.2003,在容器内安装vim,然后提交新的镜像
# 新的镜像再运行出的容器,默认就携带vim
[root@localhost ~]# docker run -it --name cenost centos:7.8.2003 bash
[root@c2cd263e5a38 /]# vim
bash: vim: command not found
[root@c2cd263e5a38 /]# yum install vim
# 安装完成以后退出容器,查看容器id进行打包
docker ps -a
# docker commit 容器id 新的镜像名称
[root@localhost ~]# docker commit b50aa98a6cc7 cemtos-vim-7.8.2003
sha256:33380b6e852a9fd41eef03a2e43ab63755aab50b849413a72e85e374c7403be8
# 查看生成的新镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cemtos-vim-7.8.2003 latest 33380b6e852a 4 minutes ago 452MB
# 运行新镜像,查看vim的情况,可以运行ok
[root@localhost ~]# docker run -it cemtos-vim-7.8.2003 bash
[root@4d41883b08ff /]# vim hahah.txt
[root@4d41883b08ff /]# cat hahah.txt
dao ci jieshu xiexie!!!
[root@4d41883b08ff /]# # 11、本地镜像导出、导入
# 导出镜像命令
docker image save centos:7.8.2003 > /opt/centos7.8.2003.tgz
# 导入命令
docker image load -i /opt/centos7.8.2003.tgz

所有博客仅用于自己学习记录,如有侵权请联系删除,文章来源于公开视频资料,如有需要请移步这里:

https://www.bilibili.com/video/BV1o14y1w7b8?p=12&vd_source=6a0e07382af7c460c1a03694e4d4f4c7

docker镜像的获取、查看、删除、docker镜像管理、docker容器管理的更多相关文章

  1. Docker镜像的获取与删除

    Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Dicker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库 ...

  2. Docker 镜像&仓库 获取及推送镜像

    docker查看.删除镜像 docker镜像存储位置: /var/lib/docker 查看docker信息也可以查看保存位置 docker info 1.列出镜像 docker images -aa ...

  3. anaconda查看删除增加镜像源

    # 查看显示原来的镜像源(base) [jiangshan@localhost ~]$ conda config --showadd_anaconda_token: Trueadd_pip_as_py ...

  4. 在docker私有仓库如何查看有哪些镜像?

    搭建了docker私有仓库,上传了一些镜像,时间长了就会忘了有哪些镜像,在网上查了,有大佬是通过脚本查看的,多厉害! #!/usr/bin/env python#-*- coding:utf-8 -* ...

  5. Docker学习(6) 获取和推送镜像

    查找镜像 拉取镜像 推送镜像 总结

  6. docker 停止、启动、删除镜像指令

    容器 docker ps // 查看所有正在运行容器 docker stop containerId // containerId 是容器的ID docker ps -a // 查看所有容器 dock ...

  7. Docker操作笔记(一)使用镜像

    使用镜像 一)获取镜像 从Docker镜像仓库获取命令的格式是: docker pull [选项] [Docker Registry 地址[:端口号]] 仓库名[:标签] 具体的选项可以通过docke ...

  8. Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程

    前言 docker对我来说是一个很方便的工具,,上一篇文章也写了docker基本的一些使用,这篇文章重点描述一下Dockerfile的使用,从零建立一个自己定制化的镜像,并可以执行我们需要的任务. 作 ...

  9. docker容器管理-含静态Ip(10)

    docker run命令详解 docker run -t #表示分配一个伪终端 -i #表示让容器的标准输入打开,不跟这个参数容器启不来 -d #后台运行 -P #dockerfile中EXPOSE ...

  10. 3、docker 容器管理

    Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...

随机推荐

  1. golang输出字母a-z

    方法1: func main() { for i := 0; i < 10; i++ { ss := 'a' + i fmt.Printf("==%c", ss) } }

  2. Loaded plugins: fastestmirror, langpacks You need to be root to perform this command.

  3. ACE下载地址

    https://download.dre.vanderbilt.edu/previous_versions/ 在某n中找了大半天愣是没人贴出来

  4. 微信h5调分享功能

    功能背景: 基于微信公众号的h5商城页面,实现特定商品的分享,包括朋友圈和好友分享功能. 代码实现(以vue项目为例): 首先贴上官方开发文档:https://developers.weixin.qq ...

  5. antd切换主题

    { "name": "my-react-app", "version": "0.1.0", "private& ...

  6. vite+vue3.0+ts搭建项目

    项目git地址:https://gitee.com/suyong01/vue3-ts-template vue+ts+vite项目初始化 # npm 6.x npm init @vitejs/app ...

  7. error:0308010C:digital envelope routines::unsupported

    Node.js v18.14.1 运行项目 node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ E ...

  8. spring-boot logback 日志

    一.引入依赖 二.配置日志文件 三.完事啦!

  9. Linux系统Shell脚本第二章:条件测试、正整数字符串比较与if、case语句

    目录 一.条件测试 1.三种测试方法 2. 正整数值比较 3.字符串比较 4.逻辑测试 二.脚本中常用命令 1.echo命令 2.date命令 3.cal命令 4.tr命令 5.cut命令 6.sor ...

  10. CCPC2021 广州 K. Magus Night

    CCPC2021 广州 K. Magus Night 题意 给定整数区间 \([1,m]\) ,从中可重复的选择 \(n\) 个数,形成一个数列 \(\{a_n\}\) .问:所有满足 \(\gcd( ...