10分钟学会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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值