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

  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

最新文章

  1. 书旗小说app点评
  2. nopcommerce 二次开发
  3. 数据字典的QUAN DEC类型与ABAP P型转换
  4. 错误21002:[SQL-DMO]用户"xxx"已经存在
  5. UNIX系统接口
  6. H5 拖放事件详解
  7. Exploit-Exercises nebule 旅行日志(一)
  8. Python爬虫入门这一篇就够了
  9. Sql知识点总结
  10. yarn的工作原理
  11. Linux在VirtualBox的网络设置
  12. 吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)
  13. [leetcode]Pow(x, n) @ Python
  14. HDOJ 1281 棋盘游戏
  15. docker的网络基础配置
  16. Overcoming Life's Obstacles - ASC 2017 March 03
  17. 配置MDM的描述文件
  18. bzoj1040(ZJOI2008)骑士——基环树
  19. Java知多少虚拟机(JVM)以及跨平台原理
  20. Windows store app[Part 4]:深入WinRT的异步机制

热门文章

  1. 【最新最新】mac pro 安装扩展imagick 最新总结
  2. FreeRTOS内存管理文档
  3. 一文总结Vue
  4. HTML初步了解
  5. js类型以及存储方式
  6. UIAutomator API定位元素
  7. 配置隐藏index.php
  8. 复习第一点-1.跑通一个helloworld
  9. 使用async实现多个请求并发
  10. MSSQL执行超大.sql脚本