Windows10安装docker
视频地址:http://study.163.com/course/courseLearn.htm?courseId=1005527017#/learn/video?lessonId=1052743396&courseId=1005527017
阿里云容器镜像服务:https://cr.console.aliyun.com/?spm=a2c4e.11153940.blogcont29941.10.607569d6bfWjZd#/accelerator
docker主页需要FQ注册用户,https://www.docker.com/
Docker发布了Docker for Windows的正式版,于是就可以在Windows下运行Docker容器了。要在Windows下运行Docker,需要满足以下先决条件:
- 64位Windows 10 Pro、Enterprise或者Education版本(Build 10586以上版本,需要安装1511 November更新)
- 在系统中启用Hyper-V。如果没有启用,Docker for Windows在安装过程中会自动启用Hyper-V(这个过程需要重启系统)
不过,如果不是使用的Windows 10,也没有关系,可以使用Docker Toolbox作为替代方案。 - 启用系统的Hper-V 和容器
当我们运行docker for windows的时候可能会遇到不能运行的情况,提示信息如下:
“Access denied. You are not allowed to use docker. You must be in the “docker-users” group.”
这是因为我们当前的用户名没有在docker的用户组里面,我们添加进去即可。具体操作如下:
win+r >>> compmgmt.msc >>> 本地用户和组 >>> 组 >>> docker-user >>> 加入用户
阿里云的镜像加速器,所以你需要登录到阿里云的官网(https://www.aliyun.com/),然后注册一个账号,这个是免费注册的,然后阿里云会给你提供一个你专属的加速地址,
这时我们拿到这个地址之后,我们就可以在docker的配置文件里面进行设置了,我这里使用的是centos虚拟机,所以配置文件是/etc/sysconfig/docker,在OPTIONS里面添加上--registry-mirror=https://xxxx.mirror.aliyuncs.com,这个参数,xxxx要改成你自己的专属地址,
修改完成后,然后使用命令service docker restart重启一下docker服务,这时拉取镜像就很快了!
此外,在提一下,有些公司只能通过代理出去拉取镜像的,这时的配置就需要另外在改改了,这时也是在docker的配置文件里面添加proxy的配置信息
这里的IP需要改成自己公司的代理,同理需要重启一下docker服务。
双击下载好的docker for windows.exe安装docker
windows+r >>> cmd >>>docker version
docker info
docker run hello-world
镜像加速:
阿里云 >>> 容器镜像服务 >>> 镜像加速器 >>> 专属加速器地址
拷贝专属加速器地址https://xxx.mirror.aliyuncs.com(xxx不同用户地址不同)
到右击桌面右下角docker图标 >>> settings
>>> daemon
>>> registry mirrors:
>>> apply
检查加速器是否正确:
cmd >>> docker info >>> 查看输出Registry Mirrors:是否为https://xxx.mirror.aliyuncs.com
切换docker到linux下:
从docker库获取镜像到本地:
docker pull [选项] [docker Registry地址] [端口号] [仓库名] [标签]
docker pull --heip
从这里找要下载的镜像:https://hub.docker.com/
例如:
docker pull training/webapp
docker pull busybox
docker pull centos
列出本地镜像:
docker image ls
docker images
删除镜像:
docker image rm 镜像名称/镜像ID
Docker 容器操作:
查看容器:docker ps 查看运行中容器
docker ps -a 查看所有容器
启动容器: 通过镜像创建一个容器并启动:
docker run [OPTION] IMAGE [COMMAND] [ARG]
COMMAND:容器启动后要执行的命令
IPTION:
-d 让docker后台运行
-t 让docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入
-i 让容器的标准输入保持开启
--name 为容器命名
-v 创建数据卷
-p 指定端口
本机访问docker(通过端口映射访问):
docker run -p 本地端口:容器端口 docker镜像
docker pull training/webapp
docker run -p 8000:5000 training/webapp
本机浏览器输入:localhost:8000 进行访问
docker run -d -p 8001:5000 training/webapp (后台运行)
容器的交互运行:
docker run -t -i centos /bin/bash
终止容器:
docker stop 容器ID
启动终止容器:
docker start 容器ID
重启容器:
docker restart 容器ID
删除容器:
docker rm 容器ID
获取容器输出信息:
docker logs 容器ID
进入容器:
docker exec -i -t 容器ID /bin/bash
主机和容器间的拷贝:
容器拷贝到主机: docker cp 容器ID:路径/文件名 本地路径
docker cp 73de53e129f5:/opt/webapp/app.py c:/
主机拷贝到容器: docker cp 路径/文件名 容器ID:/路径/文件名
数据卷:
数据卷是一个可供多个容器使用的特殊目录,他绕过UFS可以提供很多特殊应用:
可以在多容器间共享和使用;
对数据卷的修改立马生效;
对数据卷的更新不会影响镜像;
数据卷默认一直存在,即使容器被删除!
类似于Linux中的mount;
数据卷命令:
docker run -v 本地目录:容器目录 容器名称
docker run -it --name volume-01 -v /vol-data centos /bin/bash
从镜像创建数据卷目录 nolume-01 容器名称
/vol-data 建立数据卷目录名
centos 选用镜像名
docker inspect 容器名
查看Mount节点内容
建立数据卷容器:
docker run -it -v /dbdata --name data01 centos /bin/bash
数据卷目录 容器名称 镜像名称
启动容器:docker start data01
进入容器:docker exec -it data01 /bin/bash
加入文件:cd /dbdata
touch db.properties
退出数据卷容器:exit
创建关联数据卷容器:
docker run -it --name vol_a --volumes-from data01 centos /bin/bash
容器名称 数据卷指向 数据卷容器名称 镜像名称
删除volume:
docker rm -v 数据卷容器名
docker run --rm 创建容器时加--rm,那么当容器停止时会自动删除挂载的书记卷容器
备份、恢复、迁移volume
docker run --rm --volumes-from dbdata -v $(pwd):/backup test/mycentos:v1.0 tar cvf /back/data.tar /data
制作云镜像:
docker conmit -p(提交时容器暂停) -a "作者" -m"说明文字" 容器ID 镜像名字:版本