玩转Docker之Docker环境搭建

玩转Docker之Docker环境搭建


1. Windows环境Docker 安装

(1) 下载Docker For Windows安装包并安装

安装完成后, 会默认要求启用windows系统的Hyper-V
如果系统没有安装其他的虚拟机软件(VirtualBox, VMware等),则可以跳过以下步骤直接使用

(2) 如果系统已经安装其他虚拟机软件,为了保持兼容, 我们需要停用Docker For Windows默认的开机自启动(防止开机就有报错弹窗)

此时我们就需要用到 docker-machine 这个命令行工具了
我们可以通过该工具创建一个基于virtualbox的docker 虚拟机

按下Win + X, 打开命令提示符(管理员), 然后输入powershell, 执行以下命令创建一个docker虚拟机

PS C:\WINDOWS\system32> docker-machine create --engine-registry-mirror=https://pu6c13lr.mirror.aliyuncs.com -d virtualbox default 

其中的–engine-registry参数用于替换默认的registry源,示例中用的是阿里云的加速镜像源 -d 为driver参数, 表示虚拟机的驱动, 这里使用的是virtualbox 最后一个default参数表示虚拟机名字

注意: 执行以上命令的前提是系统已安装了virtual box虚拟机

创建完虚拟机之后我们需要启动该docker虚拟机(可以通过status查询是否已经启动)

PS C:\WINDOWS\system32> docker-machine status default
Running
PS C:\WINDOWS\system32> docker-machine start default

启动完docker 虚拟机, 我们还需要导入一下虚拟机的环境变量
先查看一下docker虚拟机环境变量

PS C:\WINDOWS\system32> docker-machine env default
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.100:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\admin one\.docker\machine\machines\default"
$Env:DOCKER_MACHINE_NAME = "default"
$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true"
# Run this command to configure your shell:
# & "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env default | Invoke-Expression

然后按照输出的内容提示(最后两行注释)导入环境变量:

PS C:\WINDOWS\system32> docker-machine.exe env default | Invoke-Expression

(3) 开始使用docker

  • 获取DockerHub上的镜像(docker pull)
PS C:\WINDOWS\system32> docker pull ubuntu:16.04

命令格式: docker pull <image>[:<version>]

<image>: 镜像名

<version>: 镜像版本, 不写时默认为latest
  • 通过指定镜像运行一个docker容器(docker run)
PS C:\WINDOWS\system32> docker run -it --name ubuntu -v $PWD/logs:/logs -p 3306:3306 -d ubuntu:16.04

命令格式:

docker run [options] image

-it 是 --iteractive 和--tty的缩写
--name 容器名称
-v 是 --volume缩写,用于挂载目录或者文件到容器 :左侧是本地目录(文件), 右侧是容器中的目录(文件)
-d 是 --detach缩写,表示直接后台运行,不进入容器, 不加该参数会默认进去该容器的命令行
  • 查询容器状态(docker ps 或者docker container ls)
PS C:\WINDOWS\system32> docker ps -a

命令格式:

docker ps / docker container ls [options]

-a 表示--all, 显示所有容器, 包括正在运行的和未运行的, 默认只有正在运行的
  • 查看本地镜像(docker images或者docker image ls)
PS C:\WINDOWS\system32> docker images
  • 将容器提交至镜像(docker commit)
PS C:\WINDOWS\system32> docker commit ubuntu your/ubuntu

命令格式:

docker commit <container> <image>[:<version>]

<container> 容器标志, 可以是ID, 也可以是名称
<image> 要提交的新的镜像名称
<version> 镜像版本,默认为latest
  • 登陆私有镜像仓库(docker login)
PS C:\WINDOWS\system32> sudo docker login --username=oyoung registry.cn-hangzhou.aliyuncs.com
Enter Password:

命令格式:

docker login --username=<username> <registry url>

<username> 私有仓库的用户名
<registry url> 私有仓库的URL
  • 为镜像打Tag(docker tag)
PS C:\WINDOWS\system32> docker tag 8bce7379ce2e registry.cn-hangzhou.aliyuncs.com/oyoungs/ubuntu:16.04

命令格式:

docker tag <imageId> <tagname>

<imageId> 要打Tag的镜像Id
<tagname> Tag 名称
  • 推送镜像到私有仓库(docker push)
PS C:\WINDOWS\system32> docker push registry.cn-hangzhou.aliyuncs.com/oyoungs/ubuntu:16.04

命令格式:

docker push <tagname>

<tagname> 上一个步骤打Tag使用的Tag名称

进入容器中查看容器IP, 为容器添加系统路由,这样可以通过网络与容器交互


PS C:\WINDOWS\system32> docker exec -it ubuntu /bin/bash
root@af55bfc0c603:/# ifconfig

ifconfig命令ubuntu的默认镜像是没有的, 需要使用apt-get 安装

root@af55bfc0c603:/# apt-get update
root@af55bfc0c603:/# apt-get install net-tools

添加系统路由(假设容器Ip为: 172.17.0.2)

PS C:\WINDOWS\system32> route ADD 172.17.0.0/16 MASK 255.255.0.0 192.168.99.100

macOS 添加系统路由

~$ sudo route -n add -net 172.17.0.0/16 -netmask 255.255.0.0 192.168.99.100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值