docker-(容器与镜像的基本命令)

镜像和容器的概念

# 镜像:images
	-一堆文件---》目前咱们从register---》下载---》放在宿主机(centos 7.9机器)
    -类比:虚拟上装系统
    	- 操作系统文件 xx.iso--->装在虚拟机上
        - 镜像你当成 xx.iso 操作系统文件
        -把iso装在不同虚拟机中---》启动---》多台有操作系统的机器
# 容器:container
	-镜像运行---》运行成容器
    -类比:
    	-容器当成一个正在运行的操作系统
        -一个镜像,可以运行成多个容器
    
# python面向对象
	类:镜像
    对象:实例化得到多个对象,每个对象间独立的
    
# 以后一个容器,你们当成 :一个操作系统+软件--》正在运行  

上传本地镜像到docker

# docker--》hub.docker-->镜像----》我们自己的镜像,也可以传上去,给所有人用
	-登录进入:就能看到你传的镜像
    
# 注册一个hub.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  #  latest 表示最新的 下载 nginx最新的镜像

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

# 运行一个centos7容器
	docker run -id --name=容器名字 镜像:标签   # 创建并运行容器,命令行在宿主机上 退出后 后台运行
    docker run -it --name=容器名字 镜像:标签   #创建并运行容器,直接进入到容器中 exit后容器也终止
    
# 运行容器(其实是两步:创建容器:create,运行容器:run)
# 容器要运行,内部必须有个前台进程阻塞,否则容器就会停掉#
# docker run 把镜像运行成容器
	-docker run 参数
    	-i 表示运行容器
        -d 以守护式容器在后台运行,用这个参数创建出来的容器,命令行还在宿主机上,没有进入到容器内部
        -t 表示容器启动后会进入容器命令行。加入这参数后,容器创建就能登录进去。即分配一个伪终端。
        --name 指定容器名字,如果不指定,会随机一个名字
        -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
        -v 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上


# mysql和python 的容器底层的操作系统是 debian 装软件需要用其他命令
apt-get update 
apt-get install vim -y

# 文件拷贝(宿主机执行)
	# 容器的文件copy到宿主机上(不是在容器内执行)
    docker cp 容器名称:容器目录 需要拷贝的文件或目录
    docker cp  0a9633190cb9:/xx.txt /root/lqz/lqz.txt
    # 宿主机的文件copy到容器中
    docker cp 需要拷贝的文件或目录 容器名称:容器目录
    docker cp /root/lqz/xx.txt  0a9633190cb9:/xx.txt

# 查看容器IP地址    
	docker inspect 容器名称  # 查看容器的详细描述,很多 
    docker inspect 0a9633190cb9 --format='{{.NetworkSettings.IPAddress}}'  过滤信息 容器名称(容器ID)

# 在多个容器之间是可以ping通的(容器和宿主机也可以)
# python:172.17.0.3
# mysql5.7:172.17.0.2

# 宿主机--》ping 它俩
# 容器--》容器
apt-get install iputils-ping
 ping 172.17.0.2

运行并进入到容器案例

# 1 案例 -id 
	docker run -id --name=centos centos:7  # 执行完,命令在宿主机上,可以通过命令查看正在运行的容器
    # exit 退出之后 容器没有停止    
     
# 2 案例  -it
docker run -it --name=centos centos:7 # 执行完,命令行在容器内,容器很干净,几乎啥软件都没有,可以exit退出到宿主机---》只要退出,容器就停了
	# exit 退出之后 容器就停止了
 重点:
	如果创建容器并进入---》只要退出---》容器就停了
    容器要运行,必须有个前台进程在运行,并且是夯住(阻塞)的,否则容器就停了

# 进入到容器中的流程
进入到容器内部
	# 在容器上执行命令
	docker exec 容器名字/id  命令
    # 利用这个特性-->进入到容器内部
    docker exec -it 容器名字/id /bin/bash
    docker exec -it python sh
    # 退出,结束掉 /bin/bash
	exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值