笔记

Docker 能做什么?

  • 保证开发、测试、交付、部署的环境完全一致
  • 保证资源的隔离
  • 启动临时的、用完即弃的环境,例如测试
  • 迅速(秒级)超大规模部署和扩容

Docker 基本概念

  • 镜像 image

预先定义好的模板文件,Docker引擎按照这个模板启动无数个容器

  • 容器 container

独立的,默认和宿主机不发生任何交互

docker <Docker参数> <镜像名> <镜像中要运行的命令和参数>

docker pull/images

  • docker pull:下载指定镜像。比如:docker pull mysql:8.0.1

默认从docker的中央仓库找,也可以指定镜像仓库:镜像仓库/镜像名:tag

  • docker images:查看本地已有的镜像。

docker run/ps

  • docker run:装在镜像成为一个容器

每个容器有一个ID,支持缩写。

两种主要的运行模式:

  • docker run -it <镜像名> <镜像中要运行的命令和参数>
  • docker run -d <镜像名> <镜像中要运行的命令和参数>
参数 含义
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行(daemon模式)容器,并返回容器ID;
--name 为容器指定一个名字
--restart=always 遇到错误自动重启
-v <本地文件:<容器文件> 文件映射(可以设置权限,比如:<容器文件>:rw)
-p <本地端口>:<容器端口> 端口映射
-e NAME=VALUE 环境变量(environment)

例子:比如启动一个mysql

docker run --name mysql -v e:\docker:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8.0.18

docker start/stop

启动/停止一个容器

docker rm

删除容器

  • docker rm xxx

rm -f 参数:强制

  • docker rmi 镜像id

删除镜像

docker exec

exec: 执行

指定目标容器,进入容器执行命令,调试等。

  • docker exec -it <容器id> <容器内要运行的命令和参数>

例如:docker exec 容器ID bash

docker logs

  • docker logs <容器ID/容器名>

查看目标容器的输出

-f 跟踪实时日志(follow)

docker inspect

  • docker inspect <容器ID/>

查看容器的详细状态

dockerfile 和 镜像仓库

docker镜像默认分层,为了复用。

例如(ubantu的dockerfile):

#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
# # Pull base image.
FROM ubuntu:14.04 # Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get -y upgrade && \
apt-get install -y build-essential && \
apt-get install -y software-properties-common && \
apt-get install -y byobu curl git htop man unzip vim wget && \
rm -rf /var/lib/apt/lists/* # Add files.
ADD root/.bashrc /root/.bashrc
ADD root/.gitconfig /root/.gitconfig
ADD root/.scripts /root/.scripts # Set environment variables.
ENV HOME /root # Define working directory.
WORKDIR /root # Define default command.
CMD ["bash"]

Dockerfile

指定镜像如何生成。

写一个自己的Docker:

FROM centos:7
#FROM ubantu:16.04 RUN yum -y install nginx
#RUN apt-get update && apt-get -y install nginx RUN echo "Hello" > /usr/share/nginx/html/index.html EXPOSE 80
#暴露80端口
  1. 然后 docker build 写好的文件
  2. docker run -p 8080:80 镜像ID
  3. docker ps
  4. docker tag 镜像ID name:tag (可以指定push到哪里去,例如:docker tag 镜像ID 127.0.0.1:5000/name:tag)
  5. docker push (如果是127.0.0.1,前提是执行了下面的registry,部署了私服才可以)
  6. 可以访问一下浏览器:localhost:5000/v2/name/tags/list
  7. 现在可以docker pull了

记录一个好玩的:

  • 部署 Docker私服

    docker run -d -p 5000:5000 --restart always --name registry registry:2
  • 镜像仓库设置
-- registry-mirror:指定镜像源
-- insecure-registry:使用HTTP方式(默认HTTPS)

K8s(Kubernetes)

Kubernetes(K8s)是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。

_

_

练习时遇到的问题

  1. Pull不下来:各种加速器
  2. 练习

今日份学习: Docker 和 Docker的使用的更多相关文章

  1. 今日份学习:初步的springboot

    今日记录 今日份BUG清单 flyway的sql文件有两个下划线 __ , _ 是不可以的. 高版本的freemarker默认的扩展名变成了flth,而不是ftl 今日份用到的网址 1. freema ...

  2. 今日份学习:写一些代码 (Spring+AOP+Redis+MySQL练习)

    笔记 Spring+AOP+Redis+MySQL练习 1. 启动docker->mysql docker run --name mysql -v e:\docker:/var/lib/mysq ...

  3. 今日份学习: Spring中使用AOP并实现redis缓存?

    笔记 在Spring中如何使用AOP? Spring是如何切换JDK动态代理和CGLIB的? spring.aop.proxy-target-class=true (在下方第二个链接中,原生doc中提 ...

  4. 今日份学习: Spring - 事实标准

    笔记 Spring IOC Inverse of Control:控制反转 DI:Dependancy Injections:依赖注入 没有IOC的时候,各种依赖需要逐个按顺序创建. 有了IOC的之后 ...

  5. 今日份学习: springboot 用到的注解

    笔记 上回用到的所有注解 @Around @Aspect @Autowired @Bean @Configuration @RequestMapping @ResponseBody @RestCont ...

  6. Docker学习笔记2: Docker 概述

    一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and  Run Any App ,AnyWhere" , ...

  7. 【Git+Docker】Docker初期学习认识和安装配置详解

    Docker: 特性: 1.以应用为中心 2.自动化构建 3.版本控制 4.组件重用 5.镜像共享 6.工具生态系统 具体后续学习 优势: 1.文件系统隔离 2.进程隔离 3.网络隔离 4.资源隔离和 ...

  8. 学习笔记之Docker

    Docker 官网 http://www.docker.com Docker is the company driving the container movement and the only co ...

  9. docker学习1:docker前世今生

    Docker简介 Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目,当时我还在上海实习,就在各种技术媒体上看到了Docker的介绍文章,很多技术媒体 ...

随机推荐

  1. pc和手机点击复制到剪贴板

    https://www.cnblogs.com/kevinCoder/p/6144376.html

  2. jQuery之绑定焦点事件(焦点事件失效)

    在使用jQuery绑定事件时,若某个事件不存在,则该事件后 绑定的事件均失效: 如图所示,若失去焦点事件checkEmail不存在, 会导致后面的事件checkMobile,和事件checkBirth ...

  3. 将信息存储在claim中,通过扩展AbpSession取出

    一.将信息存储到claim中 claims.AddRange(new[] { //新增身份,添加租户id new Claim("RoleName","管理员111&quo ...

  4. [数据库] MariaDB安装及使用

    一.安装MariaDB 1.使用官方源安装marisdb 如果使用阿里云的源,目前的版本号为5.5.64.如果想安装最新的10.x版本,则需要使用MariaDB的官方源. 1)配置官方源: 在/etc ...

  5. HYStockChart, 股票图(包括K线图、趋势图、成交量、滚动、放大缩小等)

    HYStockChart, 股票图(包括K线图.趋势图.成交量.滚动.放大缩小等) https://www.helplib.com/GitHub/article_127980git 地址 http:/ ...

  6. 三天的Python课程

    基础很sb但必须熟练掌握: 第一天就是Python的简单介绍与简单的接触.基本都是概念性的东西,需要知道一个非常便捷的IDE工具:pycharm,以后的编程就靠它了.还有就是%s和%d的格式化输出.运 ...

  7. 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收

    JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...

  8. 虚拟交换系统-VSS

    1.虚拟交换系统VSS技术概述 VSS的特点: VSS将两台Catalyst 6500/4500系列交换机组合为单一虚拟交换机,对外来看,只有一台交换机,管理冗余链路如同管理自己的一个单一接口. VS ...

  9. DBC的故事(二)

    上篇介绍了MSB和LSB,此篇介绍更复杂的:有符号和无符号数. 1.信号符号 CAN信号有其物理意义,如温度.扭矩等,这些信号是有负值的,常见的解决方案有2种: 1)把offset设成负值 如温度of ...

  10. 工具,Linux - tree命令,显示程序树型结构

    sudo apt-get install tree tree --help