文章目录
- 1、docker简介
- 2、docker的基本组成
- 3、docker的安装与配置
- 4、docker的常用命令
1、docker简介
什么是容器?
它是一种虚拟化的方案,是操作系统级别的虚拟化,只能运行相同或相似内核的操作系统,依赖于Linux内核特性:Namespace和Cgroups (Control Group)。
Linux容器技术与虚拟机对比
docker的使用场景有哪些?
1、 使用docker容器开发、测试、部署服务
2、 创建隔离的运行环境
3、 搭建测试环境
4、 构建多用户的平台即服务(PasS)基础设施
5、 提供软件即服务(SaaS)应用程序
6、 高性能、超大规模的宿主机部署
docker容器的能力
文件系统隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器间的虚拟网络接口和ip地址都是分开的
资源隔离与分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器
2、docker的基本组成
Docker的主要概念有:Docker Client(客户端),Docker Daemon(守护进程),Docker Image(镜像),Docker Container(容器),Docker Registry(仓库)
dockerfile与仓库、镜像、容器及tar文件之间的关系
3、docker的安装与配置
在Ubuntu中安装docker
安装前检查环境:
1、 检查内核版本,用命令 uname -a
2、 检查Device Mapper,用命令 ls -l /sys/class/misc/device-mapper
法一:用Ubuntu维护的版本安装
sudo apt-get install docker.io
source /etc/bash_completion.d/docker.io
法二:用docker维护的版本安装
# 1、检查apt的https支持,查看/usr/lib/apt/methods/https文件是否存在,如果不存在,运行安装命令
apt-get update
apt-get install -y apt-transport-https
# 2、添加docker的apt仓库
echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list
# 3、添加仓库的key
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
# 4、安装
apt-get update
apt-get install -y lxc-docker
可以将这4个步骤写入一个sh脚本,用sh脚本一步到位安装
sudo apt-get install -y curl
curl -ssl https://get.docker.com/ubuntu/ | sudo sh
使用非root用户运行docker
1. sudo groupadd docker # 创建一个名为docker的用户组
2. sudo gpasswd -a ${USER} docker # 将当前用户添加到docker组
3. sudo service docker restart #重启docker
4、docker的常用命令
1、查看镜像
docker images #查看images镜像
2、启动容器
docker run IMAGE [COMMAND] [ARG…]
-d 后台启动
-i --interactive=ture | fasle 默认是false
-t --tty=true | false 默认是false
# 比如:
docker run -d --name nginx_test -p 81:80 nginx #运行容器(-d 后台运行, -p 外部81端口映射到容器80端口, --name指定运行的名字)
docker run -d --name bmweb -v ~/example-docs:/usr/local/apache2/htdocs -p 80:80 httpd:latest #-v 挂载目录,将宿主机目录挂载到容器内目标,双方修改同步
3、查看容器
docker ps # 查看正在运行的容器
docker ps -a # 查看全部的容器,包括停止的
4、查看容器详情
docker inspect 容器ID/name
5、重新启动停止的容器
docker start [-i] 容器ID/name
6、删除停止的容器
docker rm 容器ID/name (并不能删除正在运行的容器)
docker rm -f 容器ID/name (强制删除,能删除正在运行的容器)
7、删除镜像
docker rmi 镜像名字
8、进入正在运行的容器
docker exec -it 容器id前几位数字 /bin/bash 进入容器里面
exit 从容器里面退出来
9、把容器提交为镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a,--author="" Author
-m,--message="" Commit message
-p,--pause=true Pause container during commit
docker commit -a "lishanlu" -m "Deeplearning model deploy environment." -p dnn_inference dnn_deploy/inference_env:v1.0
10、通过dockerfile构建镜像
docker build -t dockerimage_name . 通过当前目录下的dockerfile构建镜像,主要最后一个点代表当前目录
11、把镜像打包成tar,方便拷贝到其他宿主机
docker save 镜像的名字 > 1.tar 将镜像保存为文件1.tar
docker save -o 1.tar 镜像的名字
12、tar包加载成docker镜像
docker load < 1.tar 从文件1.tar导入镜像
docker load -i 1.tar