认识Docker 以及容器镜像的基本操作
认识Docker?
Docker是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发。
源代码托管在Github上,并遵从Apache2.0协议。
Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
Docker是开发,运行和部署应用程序的开放管理平台.开发人员能利用docker开发和运行应用程序, 运维人员能利用docker部署和管理应用程序。
简单来说:Docker就是一种快速解决生产问题的一种技术手段。
为什么使用Docker?
- 跨环境一致性
- 降低配置开发环境、生产环境的复杂度和成本
- 可移植性较强。可在多个平台使用:比如:亚马逊、谷歌、微软等
- 隔离性。能保证每个容器中的资源隔离性。
- 实现程序的快速部署和分发
例如:
1,我在本地写代码,可直接通过docker与同事进行共享,实现协同工作。方便。
2,在服务器上删除一些应用程序是很难的,但是docker就不一样了,不会产生依赖关系冲突。
3,在docker写完代码后,可直接进行自动测试和手动测试
4,如果在开发环境中,发现错误的话,直接在开发环境中修改,然后去测试环境中测试和验证
5,如果开发完成之后,交付时,直接交付docker就行了。
docker与虚拟机的区别?
相同点:
- docker与虚拟机一样,都对物理硬件资源共享
- 而且他们的生命周期基本=相似(创建、启动、暂停、关闭))
- 他们都可以安装自己的应用,比如mysql,redis,nginx等
- 同虚拟机一样,创建完容器后,户存在 var/lib/docker/containers
不同点:
- 虚拟机的创建、启动、关闭都是基于一个完整的操作系统,一个虚拟机就是一个完整的操作系统,而docker是直接运行在宿主机上的,所以docker更像是一系列的进程
- 容器是轻量级的,虚拟机是重量级的,容器的创建、启动和关闭肯定都比虚拟机要执行的效率快得多。
- 这也就意味着,在给定的硬件上能运行很多个容器,却不能运行太多的虚拟机。
相应的,docker也有一些缺点:依赖网络、依赖操作系统、银行U盾等场景不能用
Docker基础命令?
docker 安装:
查看支持的docker版本 apt-cache madison docker-ce 安装docker apt-get install docker-ce -y 注:可以指定版本安装docker: apt-get install docker-ce=<VERSION> -y
启动docker
systemctl start docker systemctl status docker 注意: ubuntu安装完毕后,默认就开启服务了
检查docker是否安装成功
sudo docker run hello-world 显示: hello from Docker! 表示已经安装成功
提示:
提示1: 如果不想每次都输入sudo, 执行,
sudo usermod -a -G docker $USER
提示2: 如果没有镜像,会去下载
启动,停止docker服务,监测状态
启动
sudo service docker start
停止
sudo service docker stop
重启docker
sudo service docker restart
状态检查
sudo service docker status
容器的管理?
容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务。
这里的容器指的是运行起来的一个Docker镜像
容器类操作:
1,查看容器
最简单的命令 docker ps -a 查看所有运行的容器 docker container ls 查看运行和停止的容器 docker container ls -all
2,查看nginx容器全部信息
docker inspect nginx
3,查看所有的容器编号
docker ps -q docker ps -a -q
4,运行,停止运行容器、删除容器
运行容器 sudo docker container start 容器名或id 停止容器 docker container stop 容器名或id docker container kill 容器名或id 删除容器 sudo docker container rm 容器名或id
5,进入创建的容器(myubuntu)
docker exec -it myubuntu /bin/bash
6 ,使用镜像,创建交互式容器
docker run [option] --name=容器名称 镜像 [传入的命的命令] 例如: docker run -it --name=myubuntu ubuntu 解释: 使用ubuntu镜像创建交互式容器, 名字为myubuntu 退出容器: ctrl + d
7,通过nginx容器创建nginx:v1.0镜像
docker commit -m 'add ifconfig' -a 'carry' nginx1 nginx:v1.0
8,守护进程nginx
让Docker容器在后台以守护形式运行。此时可以通过添加-d参数来实现 docker run -d nginx
镜像类管理:
Docker镜像是什么?
它是一个只读的文件,就类似于我们安装操作系统时候所需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署。这里的镜像就是一个能被docker运行起来的一个程序
镜像操作:
1,查看所有docker镜像
docker image ls 或者: docker images
2,查看所有docker历史镜像
docker history xxx
3,拉取云端镜像 | 下载镜像(pull)
docker image pull xxx 搜索镜像: docker image search xxx
4,镜像备份 (tag 原镜像 新镜像)
docker tag hello-world:latest hello-world:v2.0
5,删除镜像
docker rmi xxx docker image rm 镜像名或id
6,删除未使用的镜像(慎用)
docker image prune
7,导出镜像(save -o)
docker save -o my_hello_world.tar hello-world:latest
8,导入镜像(load -i 本地镜像包)加载本地镜像
docker load -i my_hello_world.tar
参考官方资料
Docker 官网:http://www.docker.com
Github Docker 源码:https://github.com/docker/docker
原文地址:https://www.jianshu.com/p/d0a1acea0d89
相关推荐
-
第一次把mysql装进docker里碰到的各种问题 服务器
2019-6-27
-
使用Pi Dashboard (Pi 仪表盘)来监控树莓派的资源 服务器
2019-8-29
-
最简明扼要的 Systemd 教程,只需十分钟 服务器
2019-3-10
-
lnmp高并发优化简介 服务器
2019-3-21
-
cron 表达式 服务器
2019-5-18
-
key-value数据库-Redis 服务器
2019-9-11
-
在 CentOS 7 中使用 Sendmail 通过 PHP 发送邮件 服务器
2019-3-7
-
Linux Namespace系列(04):mount namespaces (CLONE_NEWNS) 服务器
2019-3-14
-
学会爱上 systemd 服务器
2020-5-25
-
nginx负载均衡配置 服务器
2019-7-3