今日份学习: Docker 和 Docker的使用
笔记
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端口
- 然后 docker build 写好的文件
- docker run -p 8080:80 镜像ID
- docker ps
- docker tag 镜像ID name:tag (可以指定push到哪里去,例如:docker tag 镜像ID 127.0.0.1:5000/name:tag)
- docker push (如果是127.0.0.1,前提是执行了下面的registry,部署了私服才可以)
- 可以访问一下浏览器:localhost:5000/v2/name/tags/list
- 现在可以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)是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。
_
_
练习时遇到的问题
- Pull不下来:各种加速器
- 练习

今日份学习: Docker 和 Docker的使用的更多相关文章
- 今日份学习:初步的springboot
今日记录 今日份BUG清单 flyway的sql文件有两个下划线 __ , _ 是不可以的. 高版本的freemarker默认的扩展名变成了flth,而不是ftl 今日份用到的网址 1. freema ...
- 今日份学习:写一些代码 (Spring+AOP+Redis+MySQL练习)
笔记 Spring+AOP+Redis+MySQL练习 1. 启动docker->mysql docker run --name mysql -v e:\docker:/var/lib/mysq ...
- 今日份学习: Spring中使用AOP并实现redis缓存?
笔记 在Spring中如何使用AOP? Spring是如何切换JDK动态代理和CGLIB的? spring.aop.proxy-target-class=true (在下方第二个链接中,原生doc中提 ...
- 今日份学习: Spring - 事实标准
笔记 Spring IOC Inverse of Control:控制反转 DI:Dependancy Injections:依赖注入 没有IOC的时候,各种依赖需要逐个按顺序创建. 有了IOC的之后 ...
- 今日份学习: springboot 用到的注解
笔记 上回用到的所有注解 @Around @Aspect @Autowired @Bean @Configuration @RequestMapping @ResponseBody @RestCont ...
- Docker学习笔记2: Docker 概述
一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and Run Any App ,AnyWhere" , ...
- 【Git+Docker】Docker初期学习认识和安装配置详解
Docker: 特性: 1.以应用为中心 2.自动化构建 3.版本控制 4.组件重用 5.镜像共享 6.工具生态系统 具体后续学习 优势: 1.文件系统隔离 2.进程隔离 3.网络隔离 4.资源隔离和 ...
- 学习笔记之Docker
Docker 官网 http://www.docker.com Docker is the company driving the container movement and the only co ...
- docker学习1:docker前世今生
Docker简介 Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目,当时我还在上海实习,就在各种技术媒体上看到了Docker的介绍文章,很多技术媒体 ...
随机推荐
- 「CF894E」 Ralph and Mushrooms
传送门 Luogu 解题思路 首先我们要发现:在同一个强连通分量里的所有边都是可以无限走的. 那么我们就有了思路:先缩点,再跑拓扑排序. 那么问题就是 \(\text{DP}\) 状态如何初始化. 我 ...
- ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution
引言 基于低分辨率的图像恢复高分辨图像具有重要意义,近年来,利用深度学习做单张图像超分辨主要有两个大方向:1.减小失真度(distortion, 意味着高PSNR)的图像超分辨,这类方法主要最小化均方 ...
- Java的反射机制之反向抽烟
show me the code and take to me,做的出来更要说的明白 GitHub项目JavaHouse同步收录 喜欢就点个赞呗! 你的支持是我分享的动力! 引入 反射是一种不按套路处 ...
- char **argv 与char *argv[]
1.char **argv 分析:argv是一个指针变量,argv的指向(*argv)是char *,也就是argv指向的也是一个指针 : *argv的指向(**argv)是char. 2.char ...
- layer.open({}) 子页面传参并调用父页面的方法
闲话少说先看效果!!! 说明适用场景:在a.jsp页面,点击查看一个文件,layer.open弹出b.jsp页面,在b.jsp页面可以修改文件的名称(其实是去改了数据库),但是关闭弹窗的后,要求不刷新 ...
- 无线客户端掉线(Disassociate and DeleteReason)
- Android 短信模块分析(七) MMS数据库定义及结构整理
一. mmssms.db 数据库mmssms.db中表的定义见表4.1至4.18所示: 表4.1 addr(彩信地址) 字段名 类型 描述 备注 _id INTEGER PRIMARY_KEY 主键I ...
- 关于调用接口 Connection reset 问题(使用代理调接口)
之前调用过别的公司的接口上传数据,但是遇到个问题就是Connection reset,查阅了网上的各种资料,说什么的都有,主要意思就是说发布接口和调用接口的某些配置不一样,但是这个怎么说呢,单方面没办 ...
- The property does not exist in XML namespace
自定义依赖属性,绑定在xaml文件中,无问题. 但是编译失败,报 The property does not exist in XML namespace 错误. 发现如果依赖属性定义在本程序集中,在 ...
- 测试者出的APP测试面试题
测试者出的APP测试面试题 一.开场问题:(自由发挥) 1.请自我介绍一下: 2.为什么离开上一个公司呢? 3.做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 4.你觉 ...