Devops(三):Docker常用命令
列出镜像列表(docker images)
[root@master docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 months ago .84kB
[root@master docker]#
各个指标项说明::
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
启动镜像(docker run)
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: (将容器内部使用的网络端口映射到我们使用的主机上)随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
实例
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p : -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -p 127.0.0.1::/tcp ubuntu bash
使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
root@master docker]# docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
使用镜像centos 以交互模式启动一个容器,在容器内执行/bin/bash命令。
root@master docker]# docker run --name mydocker -t -i centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
d8d02d457314: Pull complete
Digest: sha256:307835c385f656ec2e2fec602cf093224173c51119bbebd602c53c3653a3d6eb
Status: Downloaded newer image for centos:latest
[root@1d8a5ab31830 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.0 pts/ Ss : : /bin/bash
root 0.0 0.0 pts/ R+ : : ps aux
[root@1d8a5ab31830 /]#
[root@1d8a5ab31830 /]# exit
exit
[root@master docker]#
#创建一个文件目录,用于挂载到容器内,做oracle数据备份时数据存放的位置,保证备份数据不丢失。
mkdir /usr/local/data_temp
chmod /usr/local/data_temp
docker run -d --name oracle12c -p : -v /usr/local/data_temp:/home/oracle/data_temp sath89/oracle-12c
备注:oracle12c是名称,-p是端口映射,-v是将宿主机的/usr/local/data_temp 目录映射到容器内的 /home/oracle/data_temp内。
列出容器列表(docker ps )
语法
docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32098924b2e0 hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" 7 minutes ago Exited (0) 7 minutes ago keen_goldstine
[root@master docker]# docker ps -a -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32098924b2e0 hello-world "/hello" 8 minutes ago Exited (0) 8 minutes ago hopeful_northcutt
查询最后一次创建的容器
[root@master docker]# docker run hello-world Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal. To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/ For more examples and ideas, visit:
https://docs.docker.com/get-started/ [root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99d7fbb94565 hello-world "/hello" 3 seconds ago Exited (0) 3 seconds ago gracious_panini
1d8a5ab31830 centos "/bin/bash" 34 minutes ago Exited (137) 4 minutes ago mydocker
[root@master docker]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99d7fbb94565 hello-world "/hello" 21 seconds ago Exited (0) 21 seconds ago gracious_panini
[root@master docker]#
进入容器方法
一、attach(不建议使用)
注意:此方法当exit退出容器后,进程也就结束了,容器就关闭了。不建议使用
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () minutes ago mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker start 1d8a5ab31830 #再次将容器启动
1d8a5ab31830
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up seconds mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker attach 1d8a5ab31830
[root@1d8a5ab31830 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@1d8a5ab31830 /]# exit
exit
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () seconds ago mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]#
attach总结:一个容器指定一个进程,这个容器退出了。他的生成周期也就结束了,也就退出了。
二、exec
注意:此方法当exit退出容器后,进程不结束,容器也不关闭。
docker exec -it 1d8a5ab31830 /bin/bash #其中 1d8a5ab31830 为容器ID号
docker exec :在运行的容器中执行命令
OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () seconds ago mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker exec -it 1d8a5ab31830 /bin/bash
Error response from daemon: Container 1d8a5ab31830dc16e3129a6e123a5c16bc10989aeced01a3be62d236ee76cb0d is not running
[root@master docker]# docker start 1d8a5ab31830
1d8a5ab31830
[root@master docker]# docker exec -it 1d8a5ab31830 /bin/bash
[root@1d8a5ab31830 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@1d8a5ab31830 /]# exit
exit
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up seconds mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]#
三、nsenter(推荐使用这个命令进入容器)
注意:当退出容器后,还能让容器再后台运行。推荐使用这个命令进入容器。
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up seconds mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker stop 1d8a5ab31830
1d8a5ab31830
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () seconds ago mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker start 1d8a5ab31830 #要先启动容器,才能进入容器里边
1d8a5ab31830
[root@master docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up seconds mydocker
[root@master docker]# docker inspect --format "{{.State.Pid}}" 1d8a5ab31830 #查看容器的进程ID [root@master docker]# nsenter -t -u -i -n #进入容器
[root@1d8a5ab31830 docker]#
[root@1d8a5ab31830 docker]# exit #退出容器,进程还在
logout
[root@master docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up About a minute mydocker
[root@master docker]#
可以写一个脚本方便进容器:
[root@master docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up minutes mydocker
[root@master docker]# echo '' > shelldocker.sh
[root@master docker]#
[root@master docker]# vi shelldocker.sh
#!/bin/bash
PID=$(docker inspect --format "{{.State.Pid}}" $)
nsenter -t $PID -u -i -n
~
"shelldocker.sh" 3L, 88C written
[root@master docker]#
[root@master docker]# ls
shelldocker.sh
[root@master docker]# chmod +x shelldocker.sh
[root@master docker]#
[root@master docker]# ./shelldocker.sh 1d8a5ab31830
[root@1d8a5ab31830 docker]# exit
logout
[root@master docker]#
查找镜像(docker search)
使用 docker search 命令来从 Docker Hub 网站来搜索镜像
docker search nginx(查找镜像)
[root@master docker]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS…
bitnami/nginx Bitnami nginx Docker Image [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho…
nginxdemos/hello NGINX webserver that serves a simple page co… [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… [OK]
crunchgeek/nginx-pagespeed Nginx with PageSpeed + GEO IP + VTS + more_s…
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. [OK]
centos/nginx--centos7 Platform for running nginx 1.8 or building n…
centos/nginx--centos7 Platform for running nginx 1.12 or building …
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… [OK]
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter
1science/nginx Nginx Docker images that include Consul Temp… [OK]
mailu/nginx Mailu nginx frontend [OK]
pebbletech/nginx-proxy nginx-proxy sets up a container running ngin… [OK]
travix/nginx NGinx reverse proxy [OK]
centos/nginx--centos7 Platform for running nginx 1.10 or building …
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX [OK]
wodby/nginx Generic nginx [OK]
拉取镜像(docker pull )
docker pull nginx(拉取镜像)
[root@master docker]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
1ab2bdfe9778: Pull complete
a17e64cfe253: Pull complete
e1288088c7a8: Pull complete
Digest: sha256:53ddb41e46de3d63376579acf46f9a41a8d7de33645db47a486de9769201fec9
Status: Downloaded newer image for nginx:latest
[root@master docker]#
从容器创建一个新的镜像(docker commit )
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
[root@master docker]# docker commit -a "runoob.com(提交的镜像作者)" -m "my apache(提交是的说明文字)" a404c6c174a2 mymysql:v1
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
[root@master docker]# docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
推送镜像(docker push)
TODO....
暂时参考《通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记》
容器内部的标准输出(docker logs)
docker logs [ID或者名字] 可以查看容器内部的标准输出
$ docker logs 353e6c82b2fc
$ docker logs -f 353e6c82b2fc
-f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出。
docker logs [ID或者名字]
[root@master docker]# docker logs 1d8a5ab31830
[root@1d8a5ab31830 /]# ps aux
bash: 平ps: command not found
[root@1d8a5ab31830 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.0 pts/ Ss : : /bin/bash
root 0.0 0.0 pts/ R+ : : ps aux
[root@1d8a5ab31830 /]#
[root@1d8a5ab31830 /]# exit
exit
[root@1d8a5ab31830 /]# echo PATH
PATH
[root@1d8a5ab31830 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@1d8a5ab31830 /]# exit
exit
[root@1d8a5ab31830 /]# [root@master docker]#
docker logs -f [ID或者名字]
root@master docker]# docker logs -f 1d8a5ab31830
[root@1d8a5ab31830 /]# ps aux
bash: 平ps: command not found
[root@1d8a5ab31830 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.0 pts/ Ss : : /bin/bash
root 0.0 0.0 pts/ R+ : : ps aux
[root@1d8a5ab31830 /]#
[root@1d8a5ab31830 /]# exit
exit
[root@1d8a5ab31830 /]# echo PATH
PATH
[root@1d8a5ab31830 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@1d8a5ab31830 /]# exit
exit
[root@1d8a5ab31830 /]#
停止应用容器(docker stop)
$ docker stop [cid|names] (可以使用cid和容器名)
[root@master docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Up minutes mydocker
[root@master docker]# docker stop mydocker
mydocker
[root@master docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@master docker]#
移除应用容器(docker rm)
$ docker rm [CID|NAMES] 可以使用cid和容器名)
$ docker rm -f CID|NAMES
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () About a minute ago mydocker
32098924b2e0 hello-world "/hello" minutes ago Exited () minutes ago hopeful_northcutt
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker rm hopeful_northcutt
hopeful_northcutt
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () About a minute ago mydocker
b07906c995f3 hello-world "/hello" minutes ago Exited () minutes ago keen_goldstine
[root@master docker]# docker rm b07906c995f3
b07906c995f3
[root@master docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d8a5ab31830 centos "/bin/bash" minutes ago Exited () minutes ago mydocker
[root@master docker]#
Docker删除容器与镜像(不建议使用,使用要注意)
停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
docker kill $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
强制删除全部image的话
docker rmi -f $(docker images -q)
参考:《2、CentOS7 Docker 安装以及基本使用,链接:https://blog.csdn.net/weixin_41515615/article/details/81349688》
Devops(三):Docker常用命令的更多相关文章
- (三) Docker 常用操作与CentOS7 防火墙命令
参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 doc ...
- Docker(三)Docker常用命令
Docker常用命令 帮助命令 # 显示 Docker 版本信息 docker version # 显示系统信息,包括镜像和容器的数量 docker info # 查看帮助文档 帮助文档地址:http ...
- 『现学现忘』Docker常用命令 — 21、容器常用命令(三)
目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...
- Docker 常用命令总结
Docker 常用命令总结 回到顶部 镜像相关 搜索 docker search *image_name* 下载 docker pull *image_name* 查看 docker images ...
- Docker常用命令-全
原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接: https://app.yinxiang.com/shard/s17/nl/19391737/9f6bf39e- ...
- 一张脑图整理Docker常用命令
先上图: Dcoker基本概念 Docker 包括三个基本概念: 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时 ...
- docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。
一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...
- 关于Docker 常用命令
Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...
- 【Docker】(3)---linux部署Docker、Docker常用命令
linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...
- Docker常用命令(二)
Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...
随机推荐
- leetcode 学习心得 (3)
源代码地址:https://github.com/hopebo/hopelee 语言:C++ 517. Super Washing Machines You have n super washing ...
- 我的oracle 健康检查报告
最近一直想用sql来生成oracle的健康检查报告,这样看起来一目了然,经过网上搜资料加自己整理终于算是成型了,部分结果如下图所示, 具体参考附件,恳请广大网友看看是否还有需要添加的地方. DB_he ...
- Oracle Block Cleanouts 块清除
当用户发出提交(commit)之后,oracle是需要写出redo来保证故障时数据可以被恢复,oracle并不需要在提交时就写出变更的数据块.由于在事务需要修改数据时,必须分配ITL事务槽,必须锁定行 ...
- 使用树莓派GPIO控制继电器
一.使用方法总结: VCC接+5v,GND接负,IN1接GPIO口, 二.然后使用Linux命令或者编程控制GPIO口高低电位即可,如:执行下列命令: gpio readall 列出所有针角 gp ...
- Jquery无须浏览实现直接下载文件
一.常用方式: 1.通常GET方式 后面带明文参数,不安全. window.location.href = 'http://localhost:1188/FileDownload.aspx?token ...
- ubuntu18.04 + python3 安装pip3
最近在学习python 网络爬虫,正好接触到python的requests模块 我的开发环境是ubuntu18.04+python3,这个系统是默认自带了python3,且版本是python 3.6. ...
- Net-NTLMv1的利用思路
Net-NTLMv1的加密方法: 客户端向服务器发送一个请求 服务器接收到请求后,生成一个16位的Challenge,发送回客户端 客户端接收到Challenge后,使用登录用户的密码hash对Cha ...
- WinDbg常用命令系列---显示局部变量dv
dv (Display Local Variables) dv命令显示当前作用域中所有局部变量的名称和值. dv [Flags] [Pattern] 参数: Flags显示其他信息.可以包括以下任何区 ...
- Fast + Small Docker Image Builds for Rust Apps
转自:https://shaneutt.com/blog/rust-fast-small-docker-image-builds/ In this post I’m going to demonstr ...
- 使用gitbase 分析git 仓库代码
gitbase 是一个基于golang 开发的开源git 仓库sql 接口查询引擎,基于此工具,我们可以方便的分析git 仓库代码的情况 而且可以基于源码的分析,还是很强大的 安装 直接使用编译的 ...