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

  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. battery-historian耗电量测试

    Battery-Historian简介 Battery-Historian是谷歌推出的一款专门分析Bugreport的工具,是谷歌2015年I/O大会上推出的一款检测运行在android5.0(Lol ...

  2. 20192326杨沥凯 实验一《Linux基础与Java开发环境》实验报告

    20192326杨沥凯 2020-2021-1 <数据结构与面向对象程序设计>实验一报告 课程:<程序设计与数据结构> 班级: 1923 姓名: 杨沥凯 学号:20192326 ...

  3. [Unity]关于Unity中的触摸类Input.Touch以及简单的虚拟摇杆实现

    InputTouch 使用Unity开发的游戏大多是移动端游戏,而一些移动端游戏完全使用触摸操作而不是点击Button Unity使用Input.Touch来管理触摸操作 Input.TouchCou ...

  4. vue-cli4.3中配置publicPath和router后,报错chunk-vendors.js:1 Uncaught SyntaxError: Unexpected token '<'

  5. Java密码加密的两种保存方式

    密码加密的两种方式(md5和base64) 常见的加密方式有盐值,md5和jdk自带的base64,这里我记录的是base64如何使用,以及破解的方式,话不多说,直接贴代码! 其实md5和加盐值都差不 ...

  6. lombok.config

    # 声明该配置文件是一个根配置文件,从该配置文件所在的目录开始扫描 config.stopBubbling=true # 全局配置 equalsAndHashCode 的 callSuper 属性为t ...

  7. 通过ESP8266WiFi模块调用“心知天气”接口 获取天气信息

    在分析代码之前,首先介绍 ArduinoJson 库的安装及"心知天气"的ID申请 一.安装 ArduinoJson 库 进入 Arduino 开发环境后,选择菜单栏-->工 ...

  8. android audiorecord初始化失败相关资料收集

    We're also struggling with audio recording on some Samsung Android Devices. Unfortunately it seems t ...

  9. vue+vant-ui移动端适配 宽高

    一:在vue中安装vant 1.npm i vant -S 2.npm i babel-plugin-import -D // 在.babelrc 中添加配置 { "plugins" ...

  10. 解决Fiddler设置的代理总是被自动关闭,The system proxy was changed

    火绒剑过滤路径ProxyOverride 停用服务SangforSP https://www.cnblogs.com/jspider/p/15896503.html