docker(docker exec -ti container /bin/bash) ๋ด๋ถ์์ /bin/bash๋ก ์คํํ๊ณ ์ฌ๊ท์ ์ผ๋ก ๋ช
๋ น์ ๊ฒ์ํ๋ฉด ํฐ๋ฏธ๋์ด ์ด์ํ๊ฒ ๋์ํ๊ธฐ ์์ํ๊ณ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ชจ๋ ๊ฒ์ด ์๋ง์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ปจํ
์ด๋์์ ๋น ์ ธ ๋์ ๋ค์ ์คํํด์ผ ํฉ๋๋ค.
๋ด ๊ฒฝ์ฐ์๋ Ctrl-P/Ctrl-N์ด ์ด์ํ๊ฒ ์๋ํ๋ฉฐ ์ ธ ๊ธฐ๋ก์ ํ์ํ๋ ๊ฒ์ด ์ง์ฆ๋ฉ๋๋ค. ๊ฐ์ ๋ฌธ์ ๋ก ๊ณ ๋ฏผํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๋ํ up ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ก์ ํ์ํ๋ฉด ๋๋๋ก ์ด ๋์์ด ์ฌํ๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
์ฒ์์ ์ฌ๋ฐ๋ฅธ ํฐ๋ฏธ๋ ํฌ๊ธฐ๊ฐ ๋ฌด์์ธ์ง ํ์ ํ์ง ๋ชปํ๋ Docker๋ก ์ด์ด์ง๋ ํฐ๋ฏธ๋ ๋ฌธ์ ๊ฐ ์์ฃผ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ก์ด ํฐ๋ฏธ๋์์๋ง ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. (์ด๊ฒ์ด ๋ฌธ์ ์ ์์ธ์ผ ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค.) ์:
$ docker exec -it foo /bin/bash
foo<strong i="6">@649fb21d747c</strong>:~$ stty size
0 0
foo<strong i="7">@649fb21d747c</strong>:~$ reset -w
foo<strong i="8">@649fb21d747c</strong>:~$ stty size
24 80
foo<strong i="9">@649fb21d747c</strong>:~$ # That was still wrong. Now resize the terminal to get a SIGWINCH.
foo<strong i="10">@649fb21d747c</strong>:~$ stty size
69 208
foo<strong i="11">@649fb21d747c</strong>:~$ exit
exit
$ docker exec -it foo /bin/bash # Try it again.
foo<strong i="12">@649fb21d747c</strong>:~$ stty size
69 208
foo<strong i="13">@649fb21d747c</strong>:~$ # Doesn't happen anymore for this session.
์ด ๋ฒ๊ทธ๋ ์ค์ ๋ก docker exec ๋ช ๋ น์ผ๋ก ์ปจํ ์ด๋์ ์ ๊ณต๋์ง ์๋ ํฐ๋ฏธ๋ ๋๋น ๋ฐ ๋์ด ๋งค๊ฐ๋ณ์ ๋๋ฌธ์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค. #10341
์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
docker exec -e COLUMNS="`tput cols`" -e LINES="`tput lines`" -ti container bash
์ด ๋ช ๋ น์ ์คํฌ๋ฆฝํธ์ ๋ฃ๊ณ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋งค๊ฐ ๋ณ์๋ก ์ ๊ณตํ๊ณ docker-exec์ ๊ฐ์ ๋ณ์นญ์ ๋ง๋ค ์๋ ์์ต๋๋ค.
@cromat ๊ฐ์ฌํฉ๋๋ค! ์ด๊ฒ์ ์ ์ ํ TTY๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ์ด ์ถฉ๋ถํ ๋์ง ์์ Windows์ Bash์์ Windows์ฉ Docker๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋ฐฑํฑ์ด ์ฝ๋๋ก ํ์์ด ์ง์ ๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๋ค์ ์ค์ด ์์ต๋๋ค.
docker exec -t container_name /bin/bash -c "export COLUMNS=`tput cols`; export LINES=`tput lines`; exec bash"
๋ต์ ์ฐพ๊ณ ์ ์ฌ๊ธฐ ์ค๋ ์ฌ๋์ ์ํด stackoverflow์์ ์ฐพ์ ์
@PhilT ๊ฐ์ฌํฉ๋๋ค.
์ด๊ฒ์ด ๋๋ฅผ ์ํด ์ผํ ๊ฒ์ ๋๋ค.
docker exec -it container_name sh -c "stty rows 50 && stty cols 150 && bash"
๊ฐ์ฌ ํด์! ๊ทธ๊ฒ์ผ๋ก ๋ด ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค!
12๊ฐ์ ์๋ฃจ์ ์ ์๋ํ ํ @PhilT ๊ฐ ์๋ํ ์ ์ผํ ์๋ฃจ์
์ด๊ฒ์ด ๋ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. bash์ ์ด์ค ์คํ์ด ํ์ํ์ง ์์ต๋๋ค.
docker exec -e COLUMNS="`tput cols`" -e LINES="`tput lines`" -ti container bash
@eigood ์ ์๋ฃจ์ ์ ์ฒซ ๋ฒ์งธ ์๋์์ ๋งค๋ ฅ์ฒ๋ผ ์๋ํ์ต๋๋ค ...
๋๋ ๊ทธ๋๊ณผ ํจ๊ป ์ฐ๋ถํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด ๋ฌธ์ ๊ฐ ์ ์ ๋ก ํด๊ฒฐ๋ฉ๋๋ค.
gnome์์ ํฌ๊ธฐ ์กฐ์ ์ Ctrl+Super+(Down Arrow)
์ด๊ณ Ctrl+Super+(Up Arrow)
@eigood ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Docker๊ฐ ์ด ์์ ์ ์ํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@PhilT @cromat ์ ๊ฒฝ์ฐ์๋ -t
์ต์
๋์ -it
์์์ ๊ฐ์ด -i
์ต์
์ด ํ์ํฉ๋๋ค.
๋๋ ๋ด ์ถ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ณ์นญ์ ๋ง๋ค์์ต๋๋ค.
alias dexec='docker exec -e COLUMNS="`tput cols`" -e LINES="`tput lines`" -ti $1'
์:
dexec containername_service_1 bash
@romulo1984 ์ด๋ค ๋ฒ์ ์ ๋์ปค๋ฅผ ์คํํ๊ณ ์์ต๋๊น? ์ด๊ฒ์ ํ์ฌ ๋ฒ์ ์์ ์์ ๋์ด์ผ ํฉ๋๋ค
@thaJeztah 17.12.0-ce
ํด๋น ๋ฒ์ ์ 3์์ EOL์ ๋๋ฌํ์ต๋๋ค. ์ด์ ๋ํ ์์ ์ฌํญ์ด ์๋ 18.06(ํ์ฌ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค)์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@thaJeztah ๊ฐ์ฌํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ Docker 18.06์์ ํด๊ฒฐ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
@nodakai ๋๋ ๋น์ ๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋๋น ๋๋ ๊ธฐํ ๋ฌธ์ ๊ฐ ์์ง๋ง Docker๋ ๋ค์ ๊ทธ๋ฆฌ์ง ์์ต๋๋ค. ํนํ, ctrl-p ๋ฐ ctrl-n์ ์ฌ์ฉํ์ฌ bash ๊ธฐ๋ก(๋ด ์ต๊ด)์ ์คํฌ๋กคํ๋ฉด ๋ค์ ๊ทธ๋ฆฌ์ง ์์ต๋๋ค. ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๊น?
@Grazfather ๊ทธ๊ฑด ๋ค๋ฅธ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฌธ์ ๋ ์ปจํ
์ด๋์์ ๋ถ๋ฆฌํ๋ ํค ์ํ์ค๊ฐ C-p C-q
์ด๋ฏ๋ก docker๊ฐ C-p
๋ฅผ ๋ณด๊ณ ๋ถ๋ฆฌํ๊ธฐ ์ํด C-q
๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. ์ค์ ๋ก ์๋ํ์ง๋ ์์์ง๋ง --detach-keys=
ํ๋ฉด ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ต์ ์ฐพ๊ณ ์ ์ฌ๊ธฐ ์ค๋ ์ฌ๋์ ์ํด stackoverflow์์ ์ฐพ์ ์
์ฌ๊ธฐ์ ์ฐ๊ฒฐ๋ ๋ต๋ณ์ LINES ๋ฐ COLUMNS ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฎ์ด์ธ ์ ์ฌ์ฉ์ ํ๊ฒฝ์ ์ํ๋ค๊ณ ๊ฐ์ ํ ๋ ์ปจํ ์ด๋ ๋ด๋ถ์์ ์ฌ์ฉ์๋ฅผ ์ ํํ ๋ ๋ค๋ฅธ ์๋ฃจ์ ์ด ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ต๊ณ ์ ์๋ฃจ์ ์ ๋๋ค.
docker์์ xshell exec์ ์ฌ์ฉํฉ๋๋ค.
xshell ์ฐฝ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ...
exec tty ํฌ๊ธฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ค์ ๋์์ต๋๋ค ... ๋๊ตฌ๋ ์ง ์ด๊ฒ์ ์๊ณ ์๋ ์ด์ ์ xshell์ด โโ์ด๋ป๊ฒํ๋์ง ... ๋๋ ๋ฎ์ ๋์ปค ๋ฒ์ ์์ ์ผํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ Docker-compose ์์ :
version: '3'
services:
php:
container_name: cmg-php
hostname: "docker-stand"
build:
context: ./
environment:
- COLUMNS=`tput cols`
- LINES=`tput lines`
ํ๊ฒฝ์ ์ค์ ์ ๋ก๋๋ค. @cromat ๊ฐ์ฌํฉ๋๋ค!
@frops ์๋ฃจ์
์ด ์๋ชป๋์์ต๋๋ค. environment
ํค๋ ์ปจํ
์ด๋ ์์ฑ ๋จ๊ณ์์ ํ๊ฒฝ์ ์ด๊ธฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฏ๋ก ์ฌ๋ฐ๋ฅธ ์๋ฃจ์
์ด ์๋๋๋ค. ์์ฑ์ด ์๋ ์ปจํ
์ด๋ ์
๋ ฅ ์ค์ ์ค์ ๋ env ๊ฐ์ด ํ์ํฉ๋๋ค.
๊ฒ๋ค๊ฐ @thaJeztah ๋ 18.06์์ ์์
18.06 ์ด์์์ ํ์คํ ๊ฐ์ ๋์ด์ผ ํ์ง๋ง ํฌ๊ธฐ ์กฐ์ ์ ๋ค์ ์์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ฌ์ ํ ์์ต๋๋ค(ํฐ๋ฏธ๋ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ์ํํ ์ ์์). ์ด๋ฌํ ๊ฒฝ์ฐ์ ๋ํด ์ฌ์๋ ๋ฃจํ๋ฅผ ์ถ๊ฐํ๋ pull ์์ฒญ์ด ์์ง๋ง ์์ง ๋ณํฉ๋์ง ์์์ต๋๋ค. https://github.com/docker/cli/pull/1529
์ผ๋ถ ์ํฉ์์๋ COLUMNS
๋ฐ LINES
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ๊ณ ์ถ์ง๋ง ํ๊ฒฝ์ ๋ณด๊ดํ ํญ๋ชฉ์ ์๋๋๋ค.
๋๋ ๋ฒ๊ทธ๊ฐ ์คํํ๋ฉด ์ฌ์ ํ ์กด์ฌ ๋ฐ๊ฒฌ --tty
๋ฐ์์ด --interactive
.
Docker ๋ฒ์ 18.09.2, ๋น๋ 6247962
์ฌํํ ์:
FROM debian
RUN apt-get update
RUN apt-get install -y sl
CMD /usr/games/sl
์ถ๋ ฅ์ด ๊นจ์ง ๋ช
๋ น/์๋ชป๋ ํฐ๋ฏธ๋ ํฌ๊ธฐ:
docker run --rm --tty slimage
https://github.com/docker/cli/pull/1529 ๋ ์์ง `Docker 18.09์ ์์ต๋๋ค.
19.03.0์์ ์์ ๋ ์์ (2019๋ 7์ 10์ผ)
https://github.com/docker/cli/pull/1775๋ฅผ ํตํด Docker CLI 18.09.5๋ก ๋ค์ ํฌํ ๋์์ต๋๋ค.
๋ช
๋ น์ผ๋ก openwrt๋ฅผ ์ปดํ์ผํ ๋ ์ต์ Mac OS์ ์ฌ์ ํ ํ์๋ฉ๋๋ค.
๋ฉ๋ด ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
์์ ๋ชจ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ง์ธ ncurses ์ฐฝ์์ ์๋ํ์ง ์์ต๋๋ค.
docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:18:17 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:18:17 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
์คํ์ผ๊ณผ ๋ฆฐํธ/๊ณ ์ ์ ์ํ ๋ชจ๋ ๋ฉ์ง ํ๋ฌ๊ทธ์ธ์ผ๋ก ํด๋์ฉ VIM ๊ตฌ์ฑ์ ๋ง๋ค์์ต๋๋ค. @cromat ์๋ฃจ์ ์
$ vi ~/.zshrc
function vim {
docker run --env LINES=$(tput lines) --env COLUMNS=$(tput cols) # ...
}
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฒ๊ทธ๋ ์ค์ ๋ก docker exec ๋ช ๋ น์ผ๋ก ์ปจํ ์ด๋์ ์ ๊ณต๋์ง ์๋ ํฐ๋ฏธ๋ ๋๋น ๋ฐ ๋์ด ๋งค๊ฐ๋ณ์ ๋๋ฌธ์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค. #10341
์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด ๋ช ๋ น์ ์คํฌ๋ฆฝํธ์ ๋ฃ๊ณ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋งค๊ฐ ๋ณ์๋ก ์ ๊ณตํ๊ณ docker-exec์ ๊ฐ์ ๋ณ์นญ์ ๋ง๋ค ์๋ ์์ต๋๋ค.