镜像和容器的概念
-一堆文件---》目前咱们从register---》下载---》放在宿主机(centos 7.9机器)
-类比:虚拟上装系统
- 操作系统文件 xx.iso--->装在虚拟机上
- 镜像你当成 xx.iso 操作系统文件
-把iso装在不同虚拟机中---》启动---》多台有操作系统的机器
-镜像运行---》运行成容器
-类比:
-容器当成一个正在运行的操作系统
-一个镜像,可以运行成多个容器
类:镜像
对象:实例化得到多个对象,每个对象间独立的
上传本地镜像到docker
-登录进入:就能看到你传的镜像
-0 登录
docker login
-1 给镜像打个标签
docker tag 本地镜像名:标签 你的名字/自己起的镜像名字:标签或版本
docker tag redis:latest liuqingzheng/rredis:vv1
-2 上传到远程仓库
docker push liuqingzheng/rredis:vv1
3 删除镜像
docker rmi liuqingzheng/rredis:vv1
docker镜像操作
docker search 搜索镜像
docker images 查看所有镜像
去网站搜:https://hub.docker.com/
使用命令搜 docker search mysql 搜索msyql的镜像
也可以添加过滤条件 通过筛选收藏数量筛选
docker search mysql --filter=STARS=5000
下载镜像: docker pull 镜像名字
docker pull mysql:5.7
docker pull nginx:latest
docker rmi 删除镜像!
docker rmi mysql:latest
docker rmi mysql:版本号或者ID号
docker rmi 镜像id -f (加上-f 正在运行的容器也一并删除)
dlcker rmi 镜像id 镜像id 镜像id
docker rmi `docker images -q`
容器基本命令操作
docker run -di --name=centos77 centos:centos7
run :创建并运行,-di :创建出容器并运行,命令行还在宿主机,--name=centos7 容器名(如果不写 随机生成),把centos7 运行成容器 centos:centos7 镜像名字和镜像版本号
docker ps
docker ps -a
docker ps -l
docker start id/名字
docker stop 7d5e/名字
docker stop `docker ps -q`
docker rm 容器id
docker rm `docker ps -a -q`
docker exec -it 容器id /bin/bash
docker exec -it 90fd0665494f /bin/bash
docker run -id --name=容器名字 镜像:标签
docker run -it --name=容器名字 镜像:标签
-docker run 参数
-i 表示运行容器
-d 以守护式容器在后台运行,用这个参数创建出来的容器,命令行还在宿主机上,没有进入到容器内部
-t 表示容器启动后会进入容器命令行。加入这参数后,容器创建就能登录进去。即分配一个伪终端。
--name 指定容器名字,如果不指定,会随机一个名字
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
apt-get update
apt-get install vim -y
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp 0a9633190cb9:/xx.txt /root/lqz/lqz.txt
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp /root/lqz/xx.txt 0a9633190cb9:/xx.txt
docker inspect 容器名称
docker inspect 0a9633190cb9 --format='{{.NetworkSettings.IPAddress}}' 过滤信息 容器名称(容器ID)
apt-get install iputils-ping
ping 172.17.0.2
运行并进入到容器案例
docker run -id --name=centos centos:7
docker run -it --name=centos centos:7
重点:
如果创建容器并进入---》只要退出---》容器就停了
容器要运行,必须有个前台进程在运行,并且是夯住(阻塞)的,否则容器就停了
进入到容器内部
docker exec 容器名字/id 命令
docker exec -it 容器名字/id /bin/bash
docker exec -it python sh
exit