win10安装 docker

10 篇文章 0 订阅

Docker介绍

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

Docker基本概念

docker包含三个基本概念:
镜像(Image)
容器(Container)
仓库(Repository)
理解了这三个概念,就理解了docker的整个生命周期了!

Docker镜像

Docker镜像(Image)就是一个只读的模板。
Docker镜像可以用来创建Docker容器。

Docker镜像和Docker容器的关系,类似于java中class类与对象之间的关系。

Docker提供了一个很简单的机制来创建镜像或者更新已有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

容器

Docker利用容器(Container)来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看成是一个简易版的Linux环境(包括ROOT用户权限、进程空间、用户空间、网络等)和运行在其中的应用程序。

Registry

Registry是集中存放镜像文件的场所。
仓库(Repository)是对于其中的镜像进行分类管理。

一个Registry中会有多个Repository。
一个Repository中会有多个不同tag的Image。

比如名称为centos的Repository仓库下,有tag为6或者7的Image镜像。

Registry分为公有(public)和私有(private)两种形式。
最大的公有Registry是Docker Hub,存放了数量庞大的镜像供用户下载使用。
国内的公开Registry包括USTC、网易云、DaoCloud、AliCloud等,可以供大陆用户更稳当快捷的访问。
用户可以在本地创建一个私有Registry。

用户创建了自己的镜像之后就可以使用push命令将它上传的公有Registry或者私有Registry中,这样下次在另一台机器上使用这个镜像的时候,只需要从Registry上pull下来运行就可以了。

安装

docker官网下载

首先在docker网站上注册一个账户,然后下载。
Docker for windows下载地址

国内下载地址

对于Windows 10以下的用户,推荐使用Docker Toolbox
Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
对于Windows 10以上的用户 推荐使用Docker for Windows
Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

文档

安装文档英文版
建议读一下英文版 。

开启Hyper-v

安装需要开启Hyper-V,如果是win10家庭版的话,可以需要升级win10专业版。可到某宝购买专业版的key。

CPU虚拟化

控制面板-程序-windows功能
在这里插入图片描述

安装过程

安装时会有360报黑客新建帐号登录提示,这个还不太清楚,建议点允许。
360报docker黑客行为

docker安装成功

在这里插入图片描述

登录

docker登录

安装是否成功

E:\>docker --version
Docker version 18.09.0, build 4d60db4

Hello-world

拉取helloWorld镜像

E:\>docker pull hello-world
Using default tag: latest
Error response from daemon: 
Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: 
net/http: TLS handshake timeout

发现下载不来

配置镜像加速

Docker可以配置的国内镜像有很多可供选择,比如说:阿里云,网易蜂巢,DaoCloud,Docker中国区官方镜像等,这些都是可以提供给大家随意选择的不错的镜像仓库。

阿里云docker镜像加速
建议不要加端口号

{
  "registry-mirrors": [
    "https://xxx.mirror.aliyuncs.com:443"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": true
}

里面的xxx是的你阿里云镜像加速地址。
再次下载,下载成功。

E:\>docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf1
Status: Downloaded newer image for hello-world:latest

运行hello-world

E:\>docker run hello-world
Hello from Docker!

docker 命令

docker镜像命令

查找镜像

E:\>docker search centos
NAME     DESCRIPTION      STARS               OFFICIAL            AUTOMATED
centos          The official build of CentOS.              5020             [OK]

拉取镜像

拉取镜像也就是把镜像下载到本地

E:\>docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a02a49cb5d: Extracting [=========>     ]  69.07MB/75.17MB

列出镜像

列出本地镜像

E:\>docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        38 hours ago        202MB
mysql               5.6                 a876cc5d29e4        3 weeks ago         256MB

删除镜像

docker rmi <image id>

docker容器

启动容器

运行交互式的容器
这里的"1e1148e4cc2c"是上面docker images列出来的镜像的 ID

E:\>docker run -i -t 1e1148e4cc2c /bin/bash
[root@33bab162592 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  
opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@33bab162592 /]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@33bab162592 /]# exit
exit
E:\>

我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力
各个参数解析:
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。

以交互方式启动容器:docker run -it --name 容器名称 镜像 /bin/bash
以守护进程方式启动容器:docker run -d --name 容器名称 镜像

停止容器

docker stop 容器名称或者容器ID

重启容器

docker start 容器名称或者容器ID

删除容器

删除指定容器:docker rm 容器名称或者容器ID

删除所有容器:docker rm ‘docker ps -a -q’

查看容器

docker ps :查看正在运行的容器
docker ps -a:查看历史运行过的容器
docker ps -l:查看最近运行过的容器

Docker 应用

windows下载docker搭建mysql

下载mysql镜像 docker pull mysql,docker run运行。

docker run -d --rm --name ecMysql 
-v D:\docker\mysql:/var/lib/mysql 
-v D:\docker\mysqlConf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=123456 
-p 3307:3306 mysql 
--character-set-server=utf8mb4 
--collation-server=utf8mb4_unicode_ci

添加:–character-set-server=utf8mb4 –collation-server=utf8mb4_unicode_ci 防止中文乱码
参数解释:
-d 后台运行
–rm windows下stop后自动rm在stop ps中的镜像,linux下次参数不能使用
–name 给镜像起别名
-v 本地目录:镜像目录
-e 给镜像设置环境变量 MYSQL_ROOT_PASSWORD=123456这句为设置密码为123456
-p 暴露端口 格式– 本地端口:镜像端口
docker run [参数] 镜像名

进入mysql


E:\>docker ps -a
CONTAINER ID        IMAGE    COMMAND   CREATED             STATUS     PORTS  NAMES
a4df   mysql:5.6   "do…"   5 seconds ago    Up 3 seconds  0.0.0.0:3307->3306/tcp   ecMysql

E:\>docker exec -it ecMysql /bin/bash
root@a4d15abc185:/# mysql -u root -P 3307 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

设置一个用户,方便远程登录

use mysql
select Host,User from user;
grant all on *.* to 'ddff'@'%' identified by 'ddgg2018';

添加远程访问账户
前面已经暴露端口,直接使用Navicat连接操作即可,当然你也可以用命令行 ,ip:127.0.0.1 用户名:ddff 密码:ddgg2018

参考资料

菜鸟教程 - docker教程

window下搭建Docker的Mysql环境

docker 命令教程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值