docker是什么
一句话,docker是一种容器化技术,你可以类比成现实中的集装箱,那么什么是容器化,容器化解决了什么问题
1.标准化
使用docker,不管你的应用开发语言是什么,运行环境是什么,docker定义了一套标准的应用构建,分享,运行的机制
2.资源隔离
包括网络的隔离,计算资源的隔离,用户权限的隔离等,隔离的好处就是避免应用之间相互影响
3.docker架构
名词解释
-
Docker_Host:安装Docker的主机
-
Docker Daemon:运行在Docker主机上的Docker后台进程
-
Client:操作Docker主机的客户端(命令行、UI等)
-
Registry:镜像仓库(如docker hub)
-
Images:镜像,带环境打包好的程序,可以直接启动运行
-
Containers:容器,由镜像启动起来正在运行中的程序
4.与虚拟机的差异
docker运行的容器是一个进程,只是这个进程被限制了对CPU内存等资源的访问,当进程被杀掉后,容器也会退出
docker常用操作
docker的常用操作就是先拉取镜像(从公共或私有镜像仓库),然后运行这个镜像创建一个容器
拉取镜像
下面的nginx可以替换成其他镜像名称
#下载最新版
docker pull nginx
#下载指定版本
docker pull nginx:1.20.1
查看你拉取的镜像
docker images
其他镜像操作
# 删除某个镜像
docker rmi 镜像名:版本号/镜像id
# 将镜像保存成压缩包
docker save -o abc.tar guignginx:v1.0
# 别的机器加载这个镜像
docker load -i abc.tar
创建容器
语法:【docker run 设置项 镜像名】
docker run --name=mynginx -d --restart=always -p 88:80 nginx
--name:指定容器名称
-d:后台运行
--restart=always: 开机自启 -p 88:80:端口映射(左侧是宿主机端口,右侧是容器端口)
查看正在运行的容器
# 查看正在运行的容器 docker ps
# 查看所有(包括停止的) docker ps -a
其他容器操作
# 删除停止的容器
docker rm 容器id/名字
docker rm -f mynginx #强制删除正在运行中的
#停止容器
docker stop 容器id/名字
#再次启动
docker start 容器id/名字
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id /bin/bash