Docker入门&安装gerrit软件

发布时间:2023年12月18日

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)

文章来源:https://blog.csdn.net/qq_41566366/article/details/134935419
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。