1. Project Overview & Quickstart (jesseduffield/lazydocker)
File: README.md
Warp, the intelligent terminal
Available for MacOS and Linux
<sup>Visit warp.dev to learn more.</sup> Tuple, the premier screen sharing app for developers on macOS and Windows.
Click here to learn more
A simple terminal UI for both docker and docker-compose, written in Go with the gocui library.
Sponsors
Elevator Pitch
Minor rant incoming: Something's not working? Maybe a service is down. docker-compose ps. Yep, it's that microservice that's still buggy. No issue, I'll just restart it: docker-compose restart. Okay now let's try again. Oh wait the issue is still there. Hmm. docker-compose ps. Right so the service must have just stopped immediately after starting. I probably would have known that if I was reading the log stream, but there is a lot of clutter in there from other services. I could get the logs for just that one service with docker compose logs --follow myservice but that dies everytime the service dies so I'd need to run that command every time I restart the service. I could alternatively run docker-compose up myservice and in that terminal window if the service is down I could just up it again, but now I've got one service hogging a terminal window even after I no longer care about its logs. I guess when I want to reclaim the terminal realestate I can do ctrl+P,Q, but... wait, that's not working for some reason. Should I use ctrl+C instead? I can't remember if that closes the foreground process or kills the actual service.
What a headache!
Memorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker's goal is to make that dream a reality.
- Requirements
- Installation
- Usage
- Keybindings
- Cool Features
- Contributing
- Video Tutorial
- Config Docs
- Twitch Stream
- FAQ
Requirements
- Docker >= 29.0.0 (API >= 1.24)
- Docker-Compose >= 1.23.2 (optional)
Installation
Homebrew
Normally lazydocker formula can be found in the Homebrew core but we suggest you to tap our formula to get frequently updated one. It works with Linux, too.
Tap:
brew install jesseduffield/lazydocker/lazydockerCore:
brew install lazydockerScoop (Windows)
You can install lazydocker using scoop:
scoop install lazydockerChocolatey (Windows)
You can install lazydocker using Chocolatey:
choco install lazydockerasdf-vm
You can install asdf-lazydocker plugin using asdf-vm:
Setup (Once)
asdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.gitFor Install / Upgrade
asdf list all lazydocker
asdf install lazydocker latest
asdf global lazydocker latestBinary Release (Linux/OSX/Windows)
You can manually download a binary release from the release page.
Automated install/update, don't forget to always verify what you're piping into bash:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bashThe script installs downloaded binary to $HOME/.local/bin directory by default, but it can be changed by setting DIR environment variable.
Go
Required Go Version >= 1.19
go install github.com/jesseduffield/lazydocker@latestRequired Go version >= 1.8, <= 1.17
go get github.com/jesseduffield/lazydockerArch Linux AUR
You can install lazydocker using the AUR by running:
yay -S lazydockerDocker
Click if you have an ARM device
If you have a ARM 32 bit v6 architecture
shdocker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=6 \ https://github.com/jesseduffield/lazydocker.gitIf you have a ARM 32 bit v7 architecture
shdocker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=7 \ https://github.com/jesseduffield/lazydocker.gitIf you have a ARM 64 bit v8 architecture
shdocker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \ --build-arg GOARCH=arm64 \ https://github.com/jesseduffield/lazydocker.git
Run the container
shdocker run --rm -it -v \ /var/run/docker.sock:/var/run/docker.sock \ -v /yourpath:/.config/jesseduffield/lazydocker \ lazyteam/lazydockerDon't forget to change
/yourpathto an actual path you created to store lazydocker's configYou can also use this docker-compose.yml
You might want to create an alias, for example:
shecho "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/config:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc
For development, you can build the image using:
git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
docker build -t lazyteam/lazydocker \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VERSION=`git describe --abbrev=0 --tag` \
.If you encounter a compatibility issue with Docker bundled binary, try rebuilding
the image with the build argument --build-arg DOCKER_VERSION="v$(docker -v | cut -d" " -f3 | rev | cut -c 2- | rev)"
so that the bundled docker binary matches your host docker binary version.
Manual
You'll need to install Go
git clone https://github.com/jesseduffield/lazydocker.git
cd lazydocker
go installYou can also use go run main.go to compile and run in one go (pun definitely intended)
Usage
Call lazydocker in your terminal. I personally use this a lot so I've made an alias for it like so:
echo "alias lzd='lazydocker'" >> ~/.zshrc(you can substitute .zshrc for whatever rc file you're using)
Cool features
everything is one keypress away (or one click away! Mouse support FTW):
- viewing the state of your docker or docker-compose container environment at a glance
- viewing logs for a container/service
- viewing ascii graphs of your containers' metrics so that you can not only feel but also look like a developer
- customising those graphs to measure nearly any metric you want
- attaching to a container/service
- restarting/removing/rebuilding containers/services
- viewing the ancestor layers of a given image
- pruning containers, images, or volumes that are hogging up disk space
Contributing
There is still a lot of work to go! Please check out the contributing guide.
For contributor discussion about things not better discussed here in the repo, join the discord channel
Donate
If you would like to support the development of lazydocker, consider sponsoring me (github is matching all donations dollar-for-dollar for 12 months)
Social
If you want to see what I (Jesse) am up to in terms of development, follow me on
twitter or watch me program on
twitch
FAQ
How do I edit my config?
By opening lazydocker, clicking on the 'project' panel in the top left, and pressing 'o' (or 'e' if your editor is vim). See Config Docs
How do I get text to wrap in my main panel?
In the future I want to make this the default, but for now there are some CPU issues that arise with wrapping. If you want to enable wrapping, use gui.wrapMainPanel: true
How do you select text?
Because we support mouse events, you will need to hold option while dragging the mouse to indicate you're trying to select text rather than click on something. Alternatively you can disable mouse events via the gui.ignoreMouseEvents config value.
Mac Users: See Issue #190 for other options.
Why can't I see my container's logs?
By default we only show logs from the last hour, so that we're not putting too much strain on the machine. This may be why you can't see logs when you first start lazydocker. This can be overwritten in the config's commandTemplates
If you are running lazydocker in Docker container, it is a know bug, that you can't see logs or CPU usage.
Alternatives
- docui - Skanehira beat me to the punch on making a docker terminal UI, so definitely check out that repo as well! I think the two repos can live in harmony though: lazydocker is more about managing existing containers/services, and docui is more about creating and configuring them.
- Portainer - Portainer tries to solve the same problem but it's accessed via your browser rather than your terminal. It also supports docker swarm.
- See Awesome Docker list for similar tools to work with Docker.
File: docs/keybindings/Keybindings_de.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menü
Projekt
e: bearbeite lazydocker Konfiguration
o: öffne lazydocker Konfiguration
m: zeige Protokolle
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Container
d: entfernen
e: hide/show stopped containers
p: pause
s: anhalten
r: neustarten
a: anbinden
m: zeige Protokolle
E: exec shell
c: führe vordefinierten benutzerdefinierten Befehl aus
b: view bulk commands
w: open in browser (first port is http)
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Dienste
u: up service
d: entferne Container
s: anhalten
p: pause
r: neustarten
S: start
a: anbinden
m: zeige Protokolle
U: up project
D: down project
R: zeige Neustartoptionen
c: führe vordefinierten benutzerdefinierten Befehl aus
b: view bulk commands
E: exec shell
w: open in browser (first port is http)
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Images
c: führe vordefinierten benutzerdefinierten Befehl aus
d: entferne Image
b: view bulk commands
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Volumes
c: führe vordefinierten benutzerdefinierten Befehl aus
d: entferne Volume
b: view bulk commands
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Netzwerk
c: führe vordefinierten benutzerdefinierten Befehl aus
d: entferne Netzwerk
b: view bulk commands
enter: fokussieren aufs Hauptpanel
[: vorheriges Tab
]: nächstes Tab
/: filter list
Haupt
esc: zurück
Global
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_en.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menu
Project
e: edit lazydocker config
o: open lazydocker config
m: view logs
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Containers
d: remove
e: hide/show stopped containers
p: pause
s: stop
r: restart
a: attach
m: view logs
E: exec shell
c: run predefined custom command
b: view bulk commands
w: open in browser (first port is http)
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Services
u: up service
d: remove containers
s: stop
p: pause
r: restart
S: start
a: attach
m: view logs
U: up project
D: down project
R: view restart options
c: run predefined custom command
b: view bulk commands
E: exec shell
w: open in browser (first port is http)
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Images
c: run predefined custom command
d: remove image
b: view bulk commands
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Volumes
c: run predefined custom command
d: remove volume
b: view bulk commands
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Networks
c: run predefined custom command
d: remove network
b: view bulk commands
enter: focus main panel
[: previous tab
]: next tab
/: filter list
Main
esc: return
Global
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_es.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menú
Proyecto
e: editar configuración de lazydocker
o: abrir configuración de lazydocker
m: ver logs
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Contenedores
d: borrar
e: esconder/mostrar contenedores parados
p: pausa
s: parar
r: reiniciar
a: attach
m: ver logs
E: ejecutar shell
c: ejecutar comando personalizado
b: ver comandos masivos
w: abrir en navegador (first port is http)
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Servicios
u: levantar servicio
d: borrar contenedores
s: parar
p: pausa
r: reiniciar
S: iniciar
a: attach
m: ver logs
U: levantar proyecto
D: dar de baja el proyecto
R: ver opciones de reinicio
c: ejecutar comando personalizado
b: ver comandos masivos
E: ejecutar shell
w: abrir en navegador (first port is http)
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Imágenes
c: ejecutar comando personalizado
d: limpiar imagen
b: ver comandos masivos
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Volúmenes
c: ejecutar comando personalizado
d: limpiar volúmen
b: ver comandos masivos
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Redes
c: ejecutar comando personalizado
d: limpiar red
b: ver comandos masivos
enter: enfocar panel principal
[: anterior pestaña
]: siguiente pestaña
/: filtrar lista
Inicio
esc: regresar
Global
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_fr.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menu
Projet
e: modifier la configuration lazydocker
o: ouvrir la configuration lazydocker
m: voir les enregistrements
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Conteneurs
d: supprimer
e: cacher/montrer les conteneurs arrêtés
p: pause
s: arrêter
r: redémarrer
a: attacher
m: voir les enregistrements
E: exécuter le shell
c: exécuter une commande prédéfinie
b: voir les commandes groupées
w: ouvrir dans le navigateur (le premier port est http)
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Services
u: up service
d: supprimer les conteneurs
s: arrêter
p: pause
r: redémarrer
S: démarrer
a: attacher
m: voir les enregistrements
U: up project
D: down project
R: voir les options de redémarrage
c: exécuter une commande prédéfinie
b: voir les commandes groupées
E: exécuter le shell
w: ouvrir dans le navigateur (le premier port est http)
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Images
c: exécuter une commande prédéfinie
d: supprimer l'image
b: voir les commandes groupées
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Volumes
c: exécuter une commande prédéfinie
d: supprimer le volume
b: voir les commandes groupées
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Réseaux
c: exécuter une commande prédéfinie
d: supprimer le réseau
b: voir les commandes groupées
enter: focus panneau principal
[: onglet précédent
]: onglet suivant
/: filter list
Principal
esc: retour
Global
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_nl.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menu
Project
e: verander de lazydocker configuratie
o: open de lazydocker configuratie
m: bekijk logs
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Containers
d: verwijder
e: verberg gestopte containers
p: pause
s: stop
r: herstart
a: verbinden
m: bekijk logs
E: exec shell
c: draai een vooraf bedacht aangepaste opdracht
b: view bulk commands
w: open in browser (first port is http)
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Diensten
u: up service
d: verwijder containers
s: stop
p: pause
r: herstart
S: start
a: verbinden
m: bekijk logs
U: up project
D: down project
R: bekijk herstart opties
c: draai een vooraf bedacht aangepaste opdracht
b: view bulk commands
E: exec shell
w: open in browser (first port is http)
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Images
c: draai een vooraf bedacht aangepaste opdracht
d: verwijder image
b: view bulk commands
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Volumes
c: draai een vooraf bedacht aangepaste opdracht
d: verwijder volume
b: view bulk commands
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Networks
c: draai een vooraf bedacht aangepaste opdracht
d: verwijder network
b: view bulk commands
enter: focus hoofdpaneel
[: vorige tab
]: volgende tab
/: filter list
Hoofd
esc: terug
Globaal
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_pl.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menu
Projekt
e: edytuj konfigurację
o: otwórz konfigurację
m: pokaż logi
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Kontenery
d: usuń
e: hide/show stopped containers
p: pause
s: zatrzymaj
r: restartuj
a: przyczep
m: pokaż logi
E: exec shell
c: wykonaj predefiniowaną własną komende
b: view bulk commands
w: open in browser (first port is http)
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Serwisy
u: up service
d: usuń kontenery
s: zatrzymaj
p: pause
r: restartuj
S: start
a: przyczep
m: pokaż logi
U: up project
D: down project
R: pokaż opcje restartu
c: wykonaj predefiniowaną własną komende
b: view bulk commands
E: exec shell
w: open in browser (first port is http)
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Obrazy
c: wykonaj predefiniowaną własną komende
d: usuń obraz
b: view bulk commands
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Wolumeny
c: wykonaj predefiniowaną własną komende
d: usuń wolumen
b: view bulk commands
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Sieci
c: wykonaj predefiniowaną własną komende
d: usuń sieci
b: view bulk commands
enter: skup na głównym panelu
[: poprzednia zakładka
]: następna zakładka
/: filter list
Główne
esc: powrót
Globalne
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_pt.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menu
Projeto
e: editar configuração do lazydocker
o: abrir configuração do lazydocker
m: ver logs
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Contêineres
d: remover
e: ocultar/mostrar contêineres parados
p: pausar
s: parar
r: reiniciar
a: anexar
m: ver logs
E: executar shell
c: executar comando personalizado predefinido
b: ver comandos em massa
w: abrir no navegador (primeira porta é http)
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Serviços
u: subir serviço
d: remover contêineres
s: parar
p: pausar
r: reiniciar
S: iniciar
a: anexar
m: ver logs
U: subir projeto
D: derrubar projeto
R: ver opções de reinício
c: executar comando personalizado predefinido
b: ver comandos em massa
E: executar shell
w: abrir no navegador (primeira porta é http)
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Imagens
c: executar comando personalizado predefinido
d: remover imagem
b: ver comandos em massa
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Volumes
c: executar comando personalizado predefinido
d: remover volume
b: ver comandos em massa
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Redes
c: executar comando personalizado predefinido
d: remover rede
b: ver comandos em massa
enter: focar no painel principal
[: aba anterior
]: próxima aba
/: filtrar lista
Principal
esc: retornar
Global
+: modo de tela seguinte (normal/meia/tela cheia)
_: modo de tela anterior
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_tr.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker menü
Proje
e: lazzydocker ayarlarını düzenle
o: lazydocker ayarlarını aç
m: kayıt defterini görüntüle
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Konteynerler
d: kaldır
e: hide/show stopped containers
p: pause
s: durdur
r: yeniden başlat
a: bağlan/iliştir
m: kayıt defterini görüntüle
E: exec shell
c: önceden tanımlanmış özel komutu çalıştır
b: view bulk commands
w: open in browser (first port is http)
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Servisler
u: up service
d: konteynerleri kaldır
s: durdur
p: pause
r: yeniden başlat
S: start
a: bağlan/iliştir
m: kayıt defterini görüntüle
U: up project
D: down project
R: yeniden başlatma seçeneklerini görüntüle
c: önceden tanımlanmış özel komutu çalıştır
b: view bulk commands
E: exec shell
w: open in browser (first port is http)
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Imajlar
c: önceden tanımlanmış özel komutu çalıştır
d: imajı kaldır
b: view bulk commands
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Alanlar
c: önceden tanımlanmış özel komutu çalıştır
d: alanı kaldır
b: view bulk commands
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Ağları
c: önceden tanımlanmış özel komutu çalıştır
d: ağı kaldır
b: view bulk commands
enter: ana panele odaklan
[: önceki sekme
]: sonraki sekme
/: filter list
Ana
esc: dönüş
Global
+: next screen mode (normal/half/fullscreen)
_: prev screen mode
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
File: docs/keybindings/Keybindings_zh.md
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go run scripts/cheatsheet/main.go generate from the project root.
Lazydocker 菜单
项目
e: 编辑lazydocker配置
o: 打开lazydocker配置
m: 查看日志
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
容器
d: 移除
e: 隐藏/显示已停止的容器
p: 暂停
s: 停止
r: 重新启动
a: attach
m: 查看日志
E: 执行shell
c: 运行预定义的自定义命令
b: 查看批量命令
w: 在浏览器中打开(第一个端口为http)
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
服务
u: 启动服务
d: 移除容器
s: 停止
p: 暂停
r: 重新启动
S: 启动项目
a: attach
m: 查看日志
U: 创建并启动容器
D: 停止并移除容器
R: 查看重启选项
c: 运行预定义的自定义命令
b: 查看批量命令
E: 执行shell
w: 在浏览器中打开(第一个端口为http)
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
镜像
c: 运行预定义的自定义命令
d: 移除镜像
b: 查看批量命令
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
卷
c: 运行预定义的自定义命令
d: 移除卷
b: 查看批量命令
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
网络
c: 运行预定义的自定义命令
d: 移除网络
b: 查看批量命令
enter: 聚焦主面板
[: 上一个选项卡
]: 下一个选项卡
/: 过滤列表
主要
esc: 返回
全局
+: 下一个屏幕模式(正常/半屏/全屏)
_: 上一个屏幕模式
1: focus projects panel
2: focus services panel
3: focus containers panel
4: focus images panel
5: focus volumes panel
6: focus networks panel
2. Official Technical Reference & Guides (jesseduffield/jesseduffield.github.io)
March, 2016: If you're on an old version of Jekyll Now and run into a) build warnings or b) syntax highlighting issues caused by Jekyll 3 and GitHub Pages updates, just :sparkles:update your _config.yml:sparkles: and you'll be set!
Jekyll Now
Jekyll is a static site generator that's perfect for GitHub hosted blogs (Jekyll Repository)
Jekyll Now makes it easier to create your Jekyll blog, by eliminating a lot of the up front setup.
- You don't need to touch the command line
- You don't need to install/configure ruby, rvm/rbenv, ruby gems :relaxed:
- You don't need to install runtime dependencies like markdown processors, Pygments, etc
- If you're on Windows, this will make setting up Jekyll a lot easier
- It's easy to try out, you can just delete your forked repository if you don't like it
In a few minutes you'll be set up with a minimal, responsive blog like the one below giving you more time to spend on writing epic blog posts!
Quick Start
Step 1) Fork Jekyll Now to your User Repository
Fork this repo, then rename the repository to yourgithubusername.github.io.
Your Jekyll blog will often be viewable immediately at https://yourgithubusername.github.io (if it's not, you can often force it to build by completing step 2)
Step 2) Customize and view your site
Enter your site name, description, avatar and many other options by editing the _config.yml file. You can easily turn on Google Analytics tracking, Disqus commenting and social icons here too.
Making a change to _config.yml (or any file in your repository) will force GitHub Pages to rebuild your site with jekyll. Your rebuilt site will be viewable a few seconds later at https://yourgithubusername.github.io - if not, give it ten minutes as GitHub suggests and it'll appear soon
There are 3 different ways that you can make changes to your blog's files:
- Edit files within your new username.github.io repository in the browser at GitHub.com (shown below).
- Use a third party GitHub content editor, like Prose by Development Seed. It's optimized for use with Jekyll making markdown editing, writing drafts, and uploading images really easy.
- Clone down your repository and make updates locally, then push them to your GitHub repository.
Step 3) Publish your first blog post
Edit /_posts/2014-3-3-Hello-World.md to publish your first blog post. This Markdown Cheatsheet might come in handy.
You can add additional posts in the browser on GitHub.com too! Just hit the + icon in
/_posts/to create new content. Just make sure to include the front-matter block at the top of each new blog post and make sure the post's filename is in this format: year-month-day-title.md
Local Development
- Install Jekyll and plug-ins in one fell swoop.
gem install github-pagesThis mirrors the plug-ins used by GitHub Pages on your local machine including Jekyll, Sass, etc. - Clone down your fork
git clone https://github.com/yourusername/yourusername.github.io.git - Serve the site and watch for markup/sass changes
jekyll serve - View your website at http://127.0.0.1:4000/
- Commit any changes and push everything to the master branch of your GitHub user repository. GitHub Pages will then rebuild and serve your website.
Moar!
I've created a more detailed walkthrough, Build A Blog With Jekyll And GitHub Pages over at the Smashing Magazine website. Check it out if you'd like a more detailed walkthrough and some background on Jekyll. :metal:
It covers:
- A more detailed walkthrough of setting up your Jekyll blog
- Common issues that you might encounter while using Jekyll
- Importing from Wordpress, using your own domain name, and blogging in your favorite editor
- Theming in Jekyll, with Liquid templating examples
- A quick look at Jekyll 2.0’s new features, including Sass/Coffeescript support and Collections
Jekyll Now Features
✓ Command-line free fork-first workflow, using GitHub.com to create, customize and post to your blog
✓ Fully responsive and mobile optimized base theme (Theme Demo)
✓ Sass/Coffeescript support using Jekyll 2.0
✓ Free hosting on your GitHub Pages user site
✓ Markdown blogging
✓ Syntax highlighting
✓ Disqus commenting
✓ Google Analytics integration
✓ SVG social icons for your footer
✓ 3 http requests, including your avatar
✘ No installing dependencies
✘ No need to set up local development
✘ No configuring plugins
✘ No need to spend time on theming
✘ More time to code other things ... wait ✓!
Questions?
Open an Issue and let's chat!
Other forkable themes
You can use the Quick Start workflow with other themes that are set up to be forked too! Here are some of my favorites:
- Hyde by MDO
- Lanyon by MDO
- mojombo.github.io by Tom Preston-Werner
- Left by Zach Holman
- Minimal Mistakes by Michael Rose
- Skinny Bones by Michael Rose
Credits
- Jekyll - Thanks to its creators, contributors and maintainers.
- SVG icons - Thanks, Neil Orange Peel. They're beautiful.
- Solarized Light Pygments - Thanks, Edward.
- Joel Glovier - Great Jekyll articles. I used Joel's feed.xml in this repository.
- David Furnes, Jon Uy, Luke Patton - Thanks for the design/code reviews.
- Bart Kiers, Florian Simon, Henry Stanley, Hun Jae Lee, Javier Cejudo, Peter Etelej, Ben Abbott, Ray Nicholus, Erin Grand, Léo Colombaro, Dean Attali, Clayton Errington, Colton Fitzgerald, Trace Mayer - Thanks for your fantastic contributions to the project!
Contributing
Issues and Pull Requests are greatly appreciated. If you've never contributed to an open source project before I'm more than happy to walk you through how to create a pull request.
You can start by opening an issue describing the problem that you're looking to resolve and we'll go from there.
I want to keep Jekyll Now as minimal as possible. Every line of code should be one that's useful to 90% of the people using it. Please bear that in mind when submitting feature requests. If it's not something that most people will use, it probably won't get merged. :guardsman: