docker介绍
docker 开源应用容器 不依赖任何语言,框架,包装系统
docker 的创新:doker镜像一次构建,到处运行
(软件打包发给别人,只要有doker都可以跑,跨平台(linux版本))
LXC linux container 内核虚拟化技术,轻量级虚拟化
LXC 通过kernel的namespace实现每个用户实例之间的相互隔离,通过cgrope实现对资源的配额和度量。
docker相当于鲸鱼,container容器就是集装箱
docker:码头工人
docker与虚拟机的区别
相同:都是虚拟化技术
不同之处:docker启动一台虚拟只需要1-2s,速度快
docker 核心
1, namespace 实现container的进程,网络,消息,文件系统和主机名的隔离
2.cgroup 的配额,可以指定 cpu 个数
常用命令
docker version 显示docker信息
docker info 显示dockers的系统信息
docker xxx –helo 帮助命令
帮助文档地址
镜像命令
#docker images
REPOSITORY 镜像的仓库
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
搜索
docker search
--filter过滤
下载
docker pull
下载mysql
docker pull 名字【:版本】,如果不写版本,默认就是latest
等价于
docker pull mysql = docker pull docker.io/library/mysql:latest
指定版本下载
docker pull mysql:5.7
删除镜像
docker rm
docker rmi –f xxxx rm 删除 I image
docker rmi –f id id id ….
容器命令
创建容器
说明:有了镜像才能创建容器
docker pull 命令
新建容器并启动
docker run 【】 image
参数说明
–name=”name”
-d 后台启动
-it 使用交互方式查询
-p 指定容器端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
-大P 随机指定端口
从容器退回主机
exit #容器停止并退出
Curl + p + Q 容器不停止退出
删除容器
docker rm id 删除指定容器
docker rm –f ¥(docker ps -aq)删除所有容器
列出所有运行的容器
docker ps
-a 列出当前运行的加上历史上运行的容器
-n=? 最近创建的几个容器
-q 只显示容器的编号
启动和停止容器
docker start 容器id 启动容器
docker restart 容器id 重启
docker stop 容器id 停止当前正在运行的容器
docker kill 容器id 强制停止当前容器
其他常用命令
后台启动容器
#命令 docker run -d 镜像名
docker run -d centos
##问题 发现centos停止了
[root@laojiang ~]# docker run -d centos
371385f8d7282dafacc5881f12610df36ce98b197d9a6bacfc708a2168e3d06c
[root@laojiang ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#常见坑 : docker rong'qi使用后台运行,就必须需要一个前台进程,docker发现没有应用了,就会自动停止
#nginx 容器启动后,发现没有提供服务,就会立即停止,就没有程序 了
查看日志
docker logs -ft --tail 容器 #发现没有日志
#自己编写一段shell脚本
"while true;do echo laojiang;sleep 3;done"
#[root@laojiang ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2775fd2294 centos "/bin/sh -c 'while t…" 5 seconds ago Up 3 seconds objective_bardeen
3f209e0efb9b centos "/bin/bash" 5 minutes ago Up 5 minutes strange_roentgen
#显示日志
-tf
--tail
#docker logs -tf --tail 10 fb2775fd2294 显示10行日志信息,并按脚本执行
#docker logs -tf fb2775fd2294 显示所有日志信息
查看容器地址
进入容器
whereis 服务资质
whereis nginx
root@4ac85ee279f5:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
查看容器中的进程信息
top 命令
docker top
[root@laojiang ~]# docker top fb2775fd2294
UID PID PPID C STIME TTY TIME
root 2656 2635 0 09:57 ? 00:00:00
root 2863 2656 0 10:03 ? 00:00:00
查看元数据
#docker inspect 容器id
[root@laojiang ~]# docker inspect [root@laojiang ~]# docker top fb2775fd2294
[
{
"Id": "fb2775fd2294678af57254633707d743f952ea737f821b32386923a02e1f8d6e",
"Created": "2022-04-04T13:57:14.624004354Z",
"Path": "/bin/sh",
"Args": [
"-c",
"while true;do echo laojiang;sleep 3;done"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2656,
"ExitCode"