Windows上运行docker
什么是Docker Desktop
docker desktop是Docker在Windows 10和macOS操作系统上的官方安装方式,这个方法依然属于先在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。
开启Hyper-V虚拟机
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。
但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!
开启虚拟机
或者使用命令行开启虚拟机
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
什么是WSL2,与Hyper-v什么关系?【待补充】
比 WSL2 更香的是 Docker for windows_ydcdm0011的博客-CSDN博客
WSL2可以单独通过powershell 登录,详见
WSL Ubuntu忘记root密码和用户密码 - 知乎 (zhihu.com)
Docker Desktop下载
下载:Install Docker Desktop on Windows | Docker Docs
Docker支持64 位版本的Windows 10 Pro,且必须开启Hyper-V。开启方式为:打开“控制面板”->“程序”-> “启动或关闭Windows功能”,找到Hyper-V并勾选,确定重启电脑。
下载好后,点击下载后的Docker for Windows Installer.exe,当前docker desktop版本是4.11
在命令行执行docker version,docker –version ,docker -v,可以查看docker版本,docker的客户端和服务端版本都是20.10.17
Linux上安装Docker【待补充】
Docker的C/S模式
Docker 采用了C/S 架构,包括客户端和服务端。Docker 守护进程(Daemon)作为服务端
接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。
Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟Docker 守护进程交互;Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息;
Docker也为我们提供了Remote API来操作Docker的守护进程,也意味着我们可以通过自己的程序来控制Docker的运行。客户端和服务端既可以运行在一个机器上,也可通过socket 或者RESTful API 来进行通信
使用Docker
docker pull openfrontier/gerrit
启动一次操作容器
docker run IMAGE_NAME [COMMAND] [ARG…]
Docker运行的容器时会首先查找本地是否存在,如果不存在会从library中拉取。
//TODO
//Docker的run命令会从哪些地方获取image和容器?
Run命令对应的是image中的run按钮
下载一个最新的ubuntu18.04的docker镜像,并输出hello world
docker run ubuntu echo 'hello world'
运行成功后,将会在image中和containers中分别存在一条记录
启动交互式容器
启动交互式的容器,就是类似于ssh登录到ubuntu,可以输出linux命令。
docker run -t -i [–name=自定义名称] IMAGE_NAME /bin/bash
-i –interactive=true | false,默认是false
-t –tty=true | false,默认是false
–name 给启动的容器自定义名称,方便后续的容器选择操作
运行ubuntu,命名为gerrit,并登录
docker run -i -t --name=gerrit ubuntu /bin/bash
如果去掉-i –t,将不会执行/bin/bash
退出ubuntu
exit
重新启动容器
docker start [-i] 容器名
docker start -i gerrit
对应的是container中的start按钮
删除停止的容器:
docker rm name | id
docker rm gerrit
rm相当于container中的delete
查看容器
docker ps [-a] [-l]
无 列出正在运行的容器
-a all 列出所有容器
-l latest 列出最近的容器
可以看到启动的容器名称是gerrit
查看指定容器
docker inspect name | id
查看gerrit容器
docker inspect gerrit
守护式容器【待补充】
容器中部署一个简单的网站【待补充】
镜像【待补充】
切换镜像源【待补充】
Docker 国内镜像 - 知乎 (zhihu.com)
镜像的备份和迁移【待补充】
(1条消息) docker备份容器到本地(以及恢复)_杨林伟的博客-CSDN博客_docker保存容器到本地
Docker镜像与容器备份迁移(export、import与commit、save、load)_非著名运维的博客-CSDN博客
镜像迁移到其他位置【待补充】
镜像默认存储在C盘,这样会导致C盘越来越大,因此可以将数据迁移到其他位置
(1条消息) Windows10更改Docker镜像目录_@Kerry~的博客-CSDN博客
搭建私有仓库【待补充】
(1条消息) docker私有仓库搭建,推送镜像到私有仓库_新林。的博客-CSDN博客
使用Docker安装gerrit
Docker下载gerrit镜像
Docker-gerrit 历史版本
Gerrit Code Review Releases | Gerrit Code Review
Gerrit Code Review - Releases
Branches · GerritCodeReview/docker-gerrit (github.com)
2.14版本的readme:GerritCodeReview/docker-gerrit at stable-2.14 (github.com)
拉取镜像
docker pull gerritcodereview/gerrit:2.14.18
docker pull openfrontier/gerrit:2.14.18
启动容器
docker run –d –v 本地存储路径 –p 8080:8080 –p 29418:29418 image_id或image_name[:version]
docker run --name 你的容器名字 -d -v D:\gerrit_data_2.14.18:/var/gerrit/review_site -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit:2.14.18
docker run的参数说明
查看docker run的所有参数
docker run --help
参数说明
-v 容器映射 ,例如这里就是本机的D:\gerrit_data_2.14.18和容器的/var/gerrit/review_site一一对应,这样做的好处是,我可以在本地修改和上传容器里的文件
ro(待补充)
rw(待补充)
(1条消息) docker run参数-v的rw、ro详解_人地个仔的博客-CSDN博客_docker ro rw
Docker containers的参数说明
attach Attach local standard input, output, and error streams to a running container
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem 在文件/目录在container和当前文件系统之间复制
create Create a new container
exec Run a command in a running
export Export a container's filesystem as a tar archive
inspect Display detailed information on one or more containers
kill Kill one or more running containers
logs Fetch the logs of a container
ls List containers
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
prune Remove all stopped containers
rename Rename a container 重命名容器名称
restart Restart one or more containers
rm Remove one or more containers
run Run a command in a new container
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until one or more containers stop, then print their exit codes
修改容器映射目录(待补充)
Docker(34)- 如何修改 docker 容器的目录映射 - 腾讯云开发者社区-腾讯云 (tencent.com)
查看容器本地和容器目录映射位置
docker inspect -f "{{.Mounts}}" container_name
或者点击容器,点击inspect
修改默认ip地址
vi /var/gerrit/etc/gerrit.config
修改gerrit下的canonicalWebUrl为localhost
Linux版本
uname -a
安装软件
当前环境中安装的Linux Alpine版本,关于Apline的版本包管理请看:Alpine Linux Apk 命令示例 - OSTechNix
apk add vim
dockerfile - apt-get 在 Docker 中找不到 - Stack Overflow
当前安装的如果是centos版本,使用yum
gerrit插件的安装位置
/var/gerrit/plugins
参考文献:
Docker——入门实战_等一杯咖啡的博客-CSDN博客_docker的使用实例
代码托管-gerrit-介绍与环境搭建_南京小T的博客-CSDN博客
Gerrit - 初始配置 - Anliven - 博客园 (cnblogs.com)