window10下docker使用

1 Docker win10环境准备

1.1安装环境:

windows10 64bit

开启Hyper-V 

(注意:开启Hyper-V后,原先电脑的虚拟机将不可用,如VMware )

控制面板 -> 程序 -> 启用或关闭Windows功能 -> 选中Hyper-V   (设置完自动重启生效)

0d28b70035b3942e986247eecb983858127.jpg

1.2安装docker for windows

下载并安装 https://hub.docker.com/editions/community/docker-ce-desktop-windows

3371a28a2fa0f158ed5fd78a754bcdd2d22.jpg

1.3启动Docker ,可右键进入设置页面

070e2f931d1681ee93d1cdc3beffd811525.jpg

8e4df2c99dc75e89e16a67bd9ce3376060c.jpg

1.4验证安装ok

打开powershell,运行$docker info 

c6810cb37242986bba22c3f1addce6df7d5.jpg

2 Docker镜像拉取

注意:可拉取自己内部的镜像源或公共的镜像源或下载一个镜像,均可!以下例子主要针对内部源

以下命令行操作需在git bash下进行(powershell有部分指令无效)

2.1登录仓库(需输入用户名密码,公共源可不用)

  1)需要先在电脑中安装信任证书docker-registry-ca.crt

双击打开(注意:证书安装好后,重启下docker

d35873de1e95daabc27abecfa3a59af5b5c.jpg

  3d3c0ba99c957326b9e43c04cb23c0a8162.jpg

8a29085999d9f15afae21f5cbfc6288c9f9.jpg

  2)命令登录,成功则显示success

$winpty docker login http://ip或domain

6d418c5be35104a5c7a2b35b63fab65ee79.jpg

2.2拉取镜像(可根据需要改为拉取公共源,如ubuntu:latest)

 $docker pull 192.168.80.64/ktvme/phpenv:latest

cd2e82c17a38b0584441a9cbc6d522e8855.jpg

查看镜像

$docker images

7a0502058a16b83f4bb87d7f959004e3c9f.jpg

2.3创建一个新容器

$docker run -i -t -d  -p 90:90  -v D:/docker/nginx:/etc/nginx/conf.d -v F:/KM/ktvme/ktvme/branches/:/usr/local/nginx/ktvme --name ktvme --privileged=true 192.168.80.64/ktvme/phpenv:latest /bin/ktvme_start.sh

05703d768737ef09e58a5b91b9ff378903d.jpg

这里特别注意下1)路径都需要使用正斜杠;2)以上路径映射需根据本地环境自行修改即可;3)在git bash下执行会出现以下错误,后续命令需要在powershell下执行(如果在git bash执行过,则先删除已创建的容器,重新创建评审)

没有报错即成功

443fb1897aa57f0531fd736a9d23f0b9ce5.jpg

查看容器

$docker ps 

e1663171399889ac8131d8be344aaf105bb.jpg

2.4开启已创建的容器

$docker start ktvme

2.5验证环境是否ok

方法一、浏览器可正常访问:http://xxx.xxx.xxx:90

方法二、直接进入容器查看环境情况

进入已开启的容器内,并到命令行(成功后就跟ssh登录linux环境一样操作了)

$docker exec -it ktvme /bin/bash

8efa8554dd57d072c2a203a18685e070cba.jpg

---------------------------------------

已有镜像tar包情况下操作

---------------------------------------

1、得到一个镜像tar包,如test.tar

注意需清楚此包是有docker export还是docker save生成,需要用对应的命令进行加载镜像

2、加载镜像

$docker run -d -i -t -v /ktvme/branches/:/home/www/src/ktvme -v /wechatsong/branches/:/home/www/src/wechatsong  -p 80:80 -p 81:81 --name ktvme test:1.0 /bin/bash

后续其他跟上面拉取源方式一样

---------------------------------------

3 Docker常用命令

3.1 Docker的容器导入导出

用到import和export

1、导出容器export(注意:export导出的是容器,不是镜像,导出镜像用下面介绍的命令)

$docker export <CONTAINER ID > > my_container.tar

将容器以tar包方式导出到本地后,我们就可以将它分享给其他人使用

2、导入容器为镜像import

$cat my_container.tar |docker import - image_name:tag

3.2 Docker的镜像导入和导出

用到save和load(注意和容器的导入导出区别,2个不可混用)

1、导出镜像

$sudo docker save -o ubuntu_14.04.tar ubuntu:14.04

2、导入镜像

$ sudo docker load --input ubuntu_14.04.tar

$ sudo docker load < ubuntu_14.04.tar

#带参数-i这将导入镜像以及其相关的元数据信息(包括标签等)。

3.3查看镜像

$docker images

3.4显示出所有容器(包括没有启动的)

$docker ps -a

3.5 创建一新的容器(container)

$docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

例 $docker run -d -it --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest

3.6 push镜像到私人仓库

#使用镜像源创建一个指定镜像的标签
#docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
$docker tag 192.168.80.64/ktvme/test:latest 192.168.80.64/ktvme/test_swoole:latest

#发布镜像 docker push NAME[:TAG]
$docker push 192.168.80.64/ktvme/test_swoole:latest

3.7 提交新镜像(在本地)

$docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]

4常见问题或报错处理

4.1 win10下执行命令docker

windows下面安装了docker以后,运行docker run -it ubuntu /bin/bash失败,提示错误“cannot enable tty mode on non tty input”,问题及解决详细参考:https://github.com/docker/docker/issues/12469

总结一般2种方案可解决

1、命令前加winpty

$winpty docker login http://192.168.80.64 

2、使用docker-machine指令

$docker-machine ssh default

$docker run -it ubuntu /bin/bash

 

4.2 git bash允许docker run/start时报错OCI runtime create failed

0286df60cf598f6594075f19f20ddb212cc.jpg

 

5 扩展学习资料

5.1基础入门,推荐阮一峰的

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

5.2 Docker文档(适合系统化学习)

注:访问不是很稳定,建议翻墙

https://yeasy.gitbooks.io/docker_practice/content/

转载于:https://my.oschina.net/u/125977/blog/3014945

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值