docker学习笔记


一、Docker是什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口


二、Docker常用命令

1.帮助命令

运行docker

Service start docker

查看版本

doker version  

查看 docker详情

docker info

查看命令

docker -help 

2.镜像命令

列出本地所有镜像

docker images

查找超过50点赞的

docker search -s 50

拉取镜像到本地

docker pull 镜像名:版本号

删除镜像d

docker rmi 镜像名:版本号
docker rmi -f  镜像Id

删除所有docker镜像

docker rmi -f $(docker images -qa)  

3.容器命令

运行本地镜像

docker run 镜像名:版本号 
		 -d:后台运行容器 
		 -i:以交互模式运行容器 
		 -t:为容器重新分配个伪输入终端
		 -P: 随机端口映射
         -p 指定端口映射
            Ip:宿主机端口:容器端口
	        Ip::容器端口
	        宿主机端口:容器端口
	        容器端口

查看运行的容器

docker ps  查看所有运行的容器
docker ps -a 列出所有运行过的容器
docker ps -l 列出上次运行的容器

从容器内退出

exit 关闭退出容器
Crtl+P+Q 不关闭退出容器        

启动之前停止的docker

docker start 容器Id 

重启docker 容器

docker restart 容器id  

停止docker 容器

docker stop 容器id 热停止
docker kill 容器id 强制停止

删除docker 容器

docker rm 容器id 删除容器  -f 强制删除
docker rm $(docker ps -qa) 删除所有容器

查看容器日志

docker logs – f -t –tail 行数 容器Id
-f:是否显示追加信息
-t:是否显示时间
-tail:显示最后行数信息

查看容器中运行的进程

docker top  容器ID

查看容器内部细节

docker inspect 容器Id

进入正在运行的容器

docker attach 容器Id

不进入容器 进行操作

docker exec -t 容器Id   不进入容器 进行操作
docker exec -it 容器Id /bin/bash 类似attach 

文件传输

docker cp 容器Id :/容器地址  /宿主机地址  复制东西从docker容器到宿主机
docker cp 容器Id /宿主机地址  :/容器地址  复制东西从宿主机到docker容器

提交容器

docker commit 提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述星系” -a=“作者” 容器ID 

3.容器数据卷

容器内添加

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it-v /宿主机绝对路径目录:/容器内目录:ro 镜像名   容器为只读命令

4.DockerFile概念

DockerFile 是构建Docker 镜像的构建文件 ,是由 一系列命令和参数构成的脚本

构建三步骤:1.编写 dockerFile 2.docker build 3.docker run

Dockerfile每条保留字指令,必须为大写字母,后面必须更水至少一个参数指令,按照从上到下顺序执行

# 表示 注释
每条指令都会创建一个新的镜像层 ,并对镜像进行提交

5.Dockerfile 保留字指令

FROM:基础镜像,当前新镜像是基于哪个镜像的

MAINTAINER : 镜像作者的姓名和邮箱地址

RUN: 容器构建时需要运行的命令

EXPOSE:当前容器对外暴露的端口

WORKDIR :指定在创建容器后,终端默认登录的进来工作目录,一个落脚点

ENV :用来在构建镜像过程中设置环境变量

ADD :将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

COPY:类似ADD,拷贝文件和目录到镜像中,将从构建上下文目录中《源路径》的文件/目录复制到新的一层的镜像内的 《目标路径》位置 COPY[“src”,”dest”]

VOLUME: 容器数据卷,用于数据保存和持久化工作

CMD 指定一个容器启动时要运行的命令

DOCKERFile 中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run 之后的参数替换

ENTRYPOINT: 指定一个容器启动是要运行的命令, ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数不会被覆盖 而是追加

ONBUILD: 当构建一个被继承的Dockerfile是运行命令,父镜像在被子继承后父镜像的onbuild被触发


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值