docker学习笔记

docker简介

基本介绍

Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

应用场景

  • Web应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

DOCKER架构

基本概念

  • 镜像(Image):Docker 镜像,就相当于是一个root文件系统。比如官方镜像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。(pull下来的是裸机,基本上啥也没有)
  • 容器(Container):镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
概念说明
imagesDocker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。
container容器是独立运行的一个或一组应用,是镜像运行时的实体。
Docker 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。
Docker 主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
repositoryDocker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

docker安装与其它配置(win10)

下载docker desktop

安装Hyper-V

  • Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10
    注意!这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!
  • 右键单击开始菜单->选择应用与功能->查找“启用或关闭windows功能”->将Hyper-V中的功能全部勾选即可
  • 或者可以通过命令来启用 Hyper-V ,请右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

本地常用命令

参数

参数作用实例
-i
-t
交互式操作
终端操作
docker run -it ubuntu /bin/bash
/bin/bash:放在镜像名后的是命令,表示希望有个交互式 Shell
-d后台运行,默认不进入容器(常用于创建镜像后进行设置)docker run -itd ubuntu /bin/bash
-p指定端口(反向映射!!!如实例中是将8888端口映射成8080端口docker run -d -p 8080:8888 ubuntu /bin/bash
-P随机指定端口docker run -d -P ubuntu /bin/bash

命令

命令作用
docker run -it ubuntu /bin/bash启动镜像
docker ps
docker ps -l
docker ps -a
查看已启动的容器
查看最后一次创建的容器
查看所有容器
docker stop wizardly_chandrasekhar停止容器,这里使用的是镜像的NAMES字段,使用CONTAINER_ID字段同样可以
docker start wizardly_chandrasekhar启动已经停止的容器,这里使用的是镜像的NAMES字段,使用CONTAINER_ID字段同样可以
docker inspect wizardly_chandrasekhar查看容器ubuntu的底层信息
docker attach 6580ce0feaf1-d参数使用之后,可以使用该命令进入容器(使用此命令进入容器后,推出终端会stop掉容器)
docker exec -it 6580ce0feaf1 /bin/bash-d参数使用之后,可以使用该命令进入容器(使用此命令进入容器后,推出终端不会stop掉容器)
docker export 6580ce0feaf1 > ubuntu.tar到处到本地文件
docker rm -f 6580ce0feaf1删除容器
docker commit -a “somebody”-m “something” 6580ce0feaf1 ubuntu2将对ubuntu的操作保存上传到ubuntu2
docker cp C:/users/balabala /bala将宿主机(win10)的balabala文件夹下的文件复制进镜像中的bala文件夹下

远程操作命令

上传镜像

将本地镜像上传到远程服务器上

  1. 登录docker hub账号
    docker login 终端登录(本人是在docker desktop中直接登录,随后输入该命令)
    图1

  2. 选择需要上传的image,获取其IMAGE ID
    docker images
    图2

  3. 为需要上传的image打标签
    docker tag f4939dca8804 name/ubuntu:latest
    这里的f4939dca8804是需要上传的image的id
    name是docker hub的用户名

  4. 上传
    docker push name/ubuntu
    漫长等待之后即可成功

下载镜像

命令作用
docker pull ubuntu载入ubuntu镜像


docker小白,若有错误之处烦请批评指正
另,此文将不定期更新
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值