Docker常用命令

在这里插入图片描述

常用命令

查询镜像

docker search   xxx

拉去镜像

docker pull xxx

查询镜像

docker image ls

删除镜像

docker rmi **IMAGE ID 镜像id**

查询所有的docker进程

ps -ef|grep docker

运行镜像生成容器

参数解释:参数命令详解
-d 后台运行容器
-p 端口映射,宿主机端口:容器内端口 你访问宿主机也访问到了容器内端口

docker run (参数)  镜像id  bash

该命令会返回一个容器的id

查看机器打开了哪些端口

netstat -tunlp

查看容器是否在运行

docker ps

停止容器

docker stop 容器id

启动容器

docker start 容器id

重启容器

docker restart 容器id

运行容器且进入容器内,交互式操作

bash 进入容器后 执行的命令

docker run -it 镜像id bash

进入正在运行的容器内

docker exec -it 容器id bash

改名

docker tag 镜像id 新名字

查看容器内信息

docker top 容器id

docker 生命周期

在这里插入图片描述

平时的虚拟机原理

在这里插入图片描述

docker 镜像的原理

在这里插入图片描述

docker解决的问题

  1. 解决了环境的兼容问题,在容器中运行linux发行版,以及各种软件,[windows+docker+容器1 (cents)+容器2(ubuntu)]
  2. 环境很干净,你安装的所有内容,都在容器里,不想要了,就直接制除容器,不影响你宿主机
  3. 比如你想把mysa容器内的数据,配置,全部迁移到服务器上,只需要提交该容器,生成镜像,镜像放到服务器上,docker run,咔咔就运行了

docker 应用

docker search 镜像名:tag  版本
# 查看本地镜像
docker images
docker image ls 
# 下载
docker pull 名字:版本
ls /var/lib/docker
# 查看镜像的方法
docker images 具体镜像名
docker images -q (只列出id)
docker images --format "{{.ID}--{.}}" (格式化显示)
# 删除镜像 根据id 名字 摘要删除
docker rmi ()
# 查看执行的容器
docker ps -a 
# 删除容器
docker rm
# 批量删除
docker rmi 'docker images -aq'
#保存镜像
docker image save (镜像名) > (地址)

docker容器管理

容器内的进程必须处于前台运行状态,否则容器就会直接退出,自己部署一个容器运行,命令不得后台运行,前台运行即可

如果容器内,什么事情也没做,容器也会挂掉,容器内,必须有一个进程在前台运行

docker run ()等于创建加启动,镜像不存在就会去下载

#执行容器,且执行命令
docker run centos ping baidu.com
# 让容器在后台跑
docker run -d centos
docker run -it -rm centos (运行后自动删除)
docker run -it -rm --name av centos (运行后自动删除,起个名字)
#查看日志
docker logs () | tail -5 (最新的五条日志)
# 进入运行的容器内
docker exec -it (容器id) bash
ps -ef (看有哪些进程在跑)
# 详细展示容器信息
docker container inspect 容器id
# 查看宿主机某个端口是否打开
netstat -tunlp|grep 80
# 端口映射
docker run -it -rm --name av centos  -p 80:80(运行后自动删除,起个名字)
# 提交容器,黑盒,没人知道是怎么构造的
docker commit 容器id 新的镜像名
# 查询时筛选
docker ps -a | head -2

dockerfill

镜像是分层存储的,每层都是基于下层的修改

#基础镜像信息
FROM (基础镜像,名称)
# 制作镜像操作指令
RUN yum install openssh-server -y
# 容器启动时执行指令
CMD ["/bin/bash"]

dockerfill 指令

在这里插入图片描述

FROM 这个镜像的妈妈是谁(指定基础镜像)
MANTAINER 告诉别人,谁负责养他(指定维护者信息,可以没有)
RUN  你想让他干啥(在命令前加上RUN即可)
ADD 添加宿主机文件到容器内 (,会自动解压)
COPY 文件  可以保存宿主文件的元数据,包括权限等等
WORKDIR 设置当前工作目录 和cd一样
VOLUME 设置券,挂载主机目录
EXPOSE 指定对外的端口
CMD 指定容器启动后要干的事情
USER 改变环境,指定用户

ENTRYPOINT

ENTRYPOINT 和CMD 的区别和用法

ENTRYPOINT 和CMD一样,都是在指定容器启动程序以及参数
当指定ENTRYPOINT 后,cmd指令语义就有变化,会把cmd的内容当作参数传递给ENTRYPOINT 。

如果使用ENTRYPOINT后,里面的命令是可修改的,CMD是不可修改的,再添加新的参数智能覆盖

ARG ENV指令

#设置环境变量
ENV NAME =""
# 后续所有操作可以根据$NAME调用,更有利于维护

# ARG和ENV一样,也是设置环境变量
# 区别在于ARG只在镜像构建时用,ENV在容器中也可以用

VOLUME

将容器内的数据和宿主机关联

VOLUME /data #将容器内的/data文件夹,在容器内运行时,该目录自动挂载为匿名卷,任何向该目录中写入数据的操作,都不会被容器记录,保证容器存储层的无状态理念

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值