进入docker容器命令

docker exec -it 容器id bash

获取镜像

# 1.获取镜像,镜像托管仓库
docker search centos # 查询centos镜像
docker images # 查看本地的镜像
docker pull centos # 下载镜像 默认是centos:latest
docker pull centos:7.8.2003 # 后面也可以跟版本
docker info | grep Root # 查看docker文件保存路径
ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ #保存着docker镜像的文件
# 该文件的作用是
记录 镜像 和容器的配置关系 # 使用不同的镜像 生成容器
# -it 开启一个交互式的终端 --rm 容器退出时删除该容器
docker run -it --rm centos bash

查看镜像

docker images # 查看镜像
# 只列出id参数
-q
# 格式显示镜像
# 这是docker的模版语言
docker images --format "{{.ID}}--{{.Repository}}"

删除镜像

# 根据镜像的id,名字,摘要等
docker rmi hello-world
# 删除容器
docker rm 容器id

管理镜像

docker images -aq # 查看镜像的id
docker rmi `docker images -aq` # 批量删除镜像
# 导出镜像
docker images save centos:7.8.2003 > /opt/centos7.8.2003.tgz
# 导入镜像
docker image load -i /opt/centos7.8.2003.tgz

Docker 容器管理

docker run等于创建+启动

docker run 镜像名,如果镜像不存在,则会在线去下载该镜像
注意:容器内的进程必须处于前台运行,否则容器就会直接退出,如果容器内什么事也没做,容器也会挂掉
-d 后台运行
--rm 容器挂掉后自动被删除
--name 给容器起名字 docker run centos
这个写法,会产生多条独立的容器记录,容器内没有程序在跑,因此挂掉了
# 运行容器,且进入容器内,且在容器内执行某条命令
docker run -it centos bash
# 让容器后台运行,会返回一个容器id
docker run -d centos ping baidu.com
# 查看容器日志
docker logs -f
docker logs 容器id | tail -5
# 查看容器的详细信息
docker container inspect 容器id
# 容器的端口映射
docker run -d --name my_nginx -p 80:80 nginx
# 查看容器的端口映射
docker port 容器id
# 容器的随机端口映射
docker run -d --name my_nginx_random -P nginx
# 容器的提交
docker commit 容器id 新的镜像名

Docker file

FROM 指定基础镜像
MAINTAINER 指定维护者信息,可以没有
RUN 在命令前面加上RUN指令即可
ADD 添加一个宿主机的文件到容器内,有自动解压的功能
COPY 作用和ADD是一样的,COPY就仅仅是拷贝
WORKDIR 设置当前工作目录
VOLUME 设置卷,挂载主机目录
EXPOSE 在容器内暴露一个端口
CMD 指定容器启动时做什么事

dockerfile实践

# 1.创建Dockerfile,注意文件名,必须是这个
FROM nginx
RUN echo '<meth charset=utf8>超哥带你用docker运行nginx服务' > /user/share/nginx/html/index.html # 2.构建Dockerfile
docker build . # 3.修改镜像名字
docker tag 镜像id 名字
# 4.运行该镜像
docker run -d -p 80:80 my_nginx

dockerfile指令的用法

# COPY
COPY chaoge.py /home/ # 支持多个文件,以及通配符形式复制
COPY chaoge* /tmp/cc?.txt /home/ # ADD
ADD chaoge.tgz /home/

0基础学习docker的更多相关文章

  1. 0基础学习web技术

    说实话0基础学习前端挺难的,当然也没有是技术是容易学习的 我只是想分享一下我的学习经历: 分为以下几点: 1:学习html和css ,学习完成之后可以模仿各大网站的静态网页 2:学习原生js基础,jq ...

  2. Swift3.0 基础学习梳理笔记(一)

    本篇是我在学完一遍基础语法知识的时候,第一遍复习,我一遍梳理一遍记录的笔记.同时分享给像我一样在学习swift 的猿友们. 本篇可能过于冗长.所以所有的参考资料都分模块的写在palyground 里, ...

  3. Linux基础学习-Docker学习笔记

    Docker安装 1 官方网站访问速度很慢,帮助文档 2 国内中文网站,帮助文档 [root@qdlinux ~]# yum remove docker \ docker-client \ docke ...

  4. 0基础入门 docker 部署 各种 Prometheus 案例 - 程序员学点xx 总集篇

    目录 大家好, 学点xx 系列也推出一段时间了.虽然 yann 能力有限,但还是收到了很多鼓励与赞赏.对这个系列 yann 还是很喜欢的,特别是 Prometheus 篇,在期间经历公众号 100 篇 ...

  5. Vue1.0基础学习笔记整理

    最近一直在使用Vue.js开发项目,现将在学习过程中遇到的一些学习小细节总结如下: 1.只处理单次插值,今后的数据变化就不会再引起插值更新了 <span>This will never c ...

  6. 如何0基础学习C/C++?

    谈及C/C++,功能强大.应用广泛,一旦掌握了后,若是再自学其他语言就显得轻而易举了.那为什么学C/C++的人少呢?很多人认为C/C++虽然博大精深,但也难学.其实就本人认为C/C++并非是“diff ...

  7. 0基础学习ios开发笔记第一天

    Ios操作 界面操作 快捷键 command + c 复制 command+v 粘贴 command +a 全选 command +s 保存 command +z 撤销 command +x  剪切 ...

  8. 0基础学习ios开发笔记第二天

    C语言的基本结构 c语言的入口函数是main函数. main函数的返回值行业标准是int return 数字:返回值 每条语句最后以分号结尾 注释:行注释.块注释 int main(void) { / ...

  9. 0基础学习MySQL 之常用数据类型

    原文地址 =========================================== 数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则. Mysql的常用数据类型主要有: ...

随机推荐

  1. 09自动售货机综设实验(含按键消抖,led和状态机)

    一设计功能 1.上次状态机的练习 2这次自动售货机综设 (一)对比两次的售货机 上次售货机的关键是画出状态转移图.明确输入分几种,输出是啥,有哪些状态.如下图所示 (二)系统或综合设计的经验: 既然这 ...

  2. springboot项目yml中使用中文注释报错的解决方法1

    启动springboot项目时报错:/application.yml.....这大致就是说application.yml有问题,那么目前我所知道的大致两种情况会报错,第一种是yml格式有问题,要注意缩 ...

  3. MyBatis 与 Hibernate 有哪些不同?

    1.Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要 程序员自己编写 Sql 语句. 2.Mybatis 直接编写原生态 sql,可以严格控制 s ...

  4. 什么是基于Java的Spring注解配置? 给一些注解的例子?

    基于Java的配置,允许你在少量的 Java注解 的帮助下,进行你的大部分Spring配置而非通过XML文件. 以@Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Sp ...

  5. springMVC和struts2的区别有哪些?

    (1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilte ...

  6. tcp粘包问题原因及解决办法

    1.粘包概念及产生原因 1.1粘包概念: TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾. 粘包可能由发送方造成,也可能由接收方造成. ...

  7. @Controller 注解?

    该注解表明该类扮演控制器的角色,Spring 不需要你继承任何其他控制器基类或 引用 Servlet API.

  8. 6. Git管理远程仓库

    6. Git管理远程仓库 使用远程仓库的目的 作用:备份,实现代码共享集中化管理 Git克隆操作 目的 将远程仓库(github对应的项目)复制到本地 代码 git clone 仓库地址 多学一招:仓 ...

  9. 什么是pandas

  10. 纯干货数学推导_傅里叶级数与傅里叶变换_Part5_从傅里叶级数推导傅里叶变换