软件应用之 Docker

  1. 安装
  2. 使用
    1. docker-machine
    2. docker

Windows使用Docker Toolbox(Desktop版需要Hyper,与VMware冲突,不想用)。

安装

  • 自行安装VirtualBox和GitBash,并用Msys2+Git代替GitBash;不安装Kitematic;

  • 添加环境变量,并添加Docker ToolBox路径到PATH中;

DOCKER_TOOLBOX_INSTALL_PATH = Docker ToolBox路径
VBOX_INSTALL_PATH = VirtualBox路径
MACHINE_STORAGE_PATH = VirtualBox虚拟机存放位置
  • msys2_shell.cmd 中添加set MSYS2_PATH_TYPE=inherit,这样Msys2中可以使用Windows环境变量。

使用

Docker Toolbox是先在Windows上打开一个Docker主机(本质为Linux虚拟机),之后在Docker主机中使用Docker。

docker-machine

docker-machine用于创建和管理运行Docker的Linux虚拟机。boot2docker.iso本质是TinycoreLinux,使用sudo -i可以切换到root。

# 基于VirtualBox创建名为default的Docker主机
# 因为Docker主机本质是虚拟机,所以可以打开VirtualBox对其设置(比如共享目录)
docker-machine create --driver virtualbox default
# 删除主机
docker-machine rm default

# 查看主机
docker-machine ls
# 查看活动的主机
docker-machine active
# 运行和关闭主机
docker-machine start default
docker-machine stop default
# 查看主机状态
docker-machine status default

# 查看主机IP地址
docker-machine ip default
# 使用登录到SSH到主机
docker-machine ssh default

# 查看zsh下怎么设置环境变量
docker-machine env --shell=zsh
# 在zsh下设置环境变量
eval $(docker-machine env --shell=zsh default)

docker

docker用于创建和管理Docker镜像和容器等。

在本地使用docker需要先打开Docker主机,并设置环境变量。

# 打开Docker主机,未指定主机名时,默认为default
docker-machine start
# 在zsh下设置环境变量
# 简单讲,设置env后,在本地运行docker命令,就相当于SSH到主机中运行docker命令
# 所以,docker镜像和容器均是保存在虚拟机中
eval $(docker-machine env --shell=zsh default)
  • docker镜像管理命令
# 登录到Docker镜像仓库,默为仓库为官方Docker Hub
docker login -u username
# 退出登录
docker logout

# 下载镜像
docker pull username/ubuntu:latest
# 上传镜像
docker push username/ubuntu:latest
# 从容器创建新的镜像,指定author和message
docker commit -a "Asd" -m "New image" <container id or name> myubuntu:edit
# 将本地镜像归入某个仓库
docker tag myubuntu:edit username/ubuntu:latest

# 查看本地镜像 
docker images
# 删除本地镜像
docker rmi busybox
  • docker容器管理命令
# 基于ubuntu镜像创建新容器并运行'/bin/zsh'命令
# --rm 容器关闭后自动删除容器
# -t 为容器重新分配一个伪输入终端
# -i 以交互模式运行
# -v 挂载本地目录到容器中
# --name 为容器指定一个名称
# -h 指定容器的hostname
# --net 设置网络连接类型
# --p 指定端口映射
# -d 后台运行容器
docker run --rm -ti -v /share:/home/share --name=ub -h uedit ubuntu:lastest /bin/zsh
# 创建新容器但不启动(参数同run)
docker create ......
# 在运行的容器中执行命令
docker exec -ti ub /bin/zsh

# 查看容器,包括未在运行的
docker ps -a
# 启动/停止/重启一个容器
docker start/stop/restart <container id or name>
# 删除容器
docker rm <container id or name>

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:软件应用之 Docker

本文作者:Y

发布时间:2019-09-21, 16:41:43

最后更新:2020-07-16, 15:28:46

原始链接:http://yehuohan.github.io/2019/09/21/%E6%9D%82%E8%AE%B0/0Usage/%E8%BD%AF%E4%BB%B6%E5%BA%94%E7%94%A8%E4%B9%8B-Docker/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。