docker

为了解决环境配置的问题,提供的带环境安装的解决方案,类似的方案还有“虚拟机”。

虚拟机可以在一种操作系统里面运行另一种操作系统,相比docker,它有以下几个缺点:

(1)虚拟机会独占一部分内存和硬盘,不论虚拟机的里的应用程序真正使用了多大的内存,它自己就会占用几百MB的内存才能运行。

(2)虚拟机是完整的操作系统,诸如登录等系统级别的操作步骤往往不可或缺,而且需要一定的开机时间。

基于此,linux发展出了另外一种虚拟化技术:linux容器(Linux Containers,LXC)

Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,对于容器里的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

由于容器是进程级别的,相比虚拟机有很多优势:

(1)启动快:容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。

(2)资源占用少:容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源

(3)体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

  • 常用命令

1:通过image_name:tag_id 创建容器(可以映射多个端口)

docker run -d -it -v /machine_path:/docker_path -p 9999:8888 (-p 9999:8888) --name contain_name image_name:tag_id

2:容器关闭后启动容器

docker start contain_name

3:关闭容器
docker stop contain_name  

4: 进入容器(类似多用户)退出:ctrl+d
docker exec -it contain_name bash 

5:进入容器(类似单用户)退出:ctrl+p+q 
docker attach contain_name  

6:查看正在运行的容器
docker ps  
7:查看所有的容器(包括已经停掉的)
docker ps -a  

8:查看宿主机上所有的镜像
docker images  

9:强制删除容器
docker rm -f contain_name  

10: 强制删除镜像
docker rmi -f image_name:tag_name  

11:从 docker hub 中拉取镜像
docker pull image_name:tag_name  

12:docker save & docker load

 

docker save -o nginx.tar nginx:latest 
或 
docker save > nginx.tar nginx:latest 
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

docker load -i nginx.tar

docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

13: docker export & docker import

 

docker export -o nginx-test.tar nginx-test

#导出为tar

docker export #ID or #Name > /home/export.tar

其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

 

docker import nginx-test.tar nginx:imp

cat nginx-test.tar | docker import - nginx:imp

posted @ 2020-10-23 20:12  小小马进阶笔记  阅读(104)  评论(0)    收藏  举报