for ii in {1..10}; do docker run --name hello-world_${ii} hello-world; done
-d
-it
(^P^Q -> attach
)--rm
docker container 지우기
docker ps -af 'name=hello' --format "{{.Names}}"
docker rm hello-world_10
docker ps -af 'name=hello' --format "{{.Names}}" | xargs docker rm
docker image 지우기
container가 존재하기 때문에 image 삭제가 실패한다.
force option을 실행할 수 있지만, 되도록이면 container를 삭제한 뒤 image를 삭제한다.
docker rmi hello-world
docker ps -a -f 'ancestor=hello-world' --format {{.Names}} | xargs docker rm
docker rmi hello-world
docker image ls
docker image pull nginx
== docker pull nginx
docker image inspect
== docker inspect
docker image inspect nginx
docker image inspect -f '{{.Config.Env}}' nginx
docker image inspect -f '{{json .Config.Env}}' nginx
docker image save
== docker save
docker image save nginx > docker_nginx_1.19.10.tar
file docker_nginx_1.19.10.tar
docker image load
== docker load
docker image ls
# nginx 존재docker image rm nginx
docker image ls
docker image load < docker_nginx_1.19.10.tar
docker exec -it ubuntu_top top "-d 0.2"
docker exec -it ubuntu_top bash
-p
): host OS의 port와 container의 port를 바인딩 // 1번 터미널
$ docker run --rm -p 8080:80/tcp --name nginx_8080 nginx
// --rm 은 종료되면 삭제한다는 뜻,
// -p 8080:80/tcp 는 모든 인터페이스에 대해
// 호스트 포트 8080을 컨테이너의 tcp 포트 80으로 바인드 하겠다는 뜻
// 2번 터미널
$ ss -nlt 'sport=:8080'
// 접속 시 nginx 페이지를 볼 수 있음
$ curl 127.0.0.1:8080
// 1번 터미널
$ echo "Hello Document root dir" > \
~/nginx_doc_root/hello.txt
$ docker run \
--rm -d -p 8080:80/tcp \
-v /home/.../nginx_doc_root:/usr/share/nginx/html \
--name nginx_8080 nginx
// 2번 터미널
$ curl 127.0.0.1:8080
$ curl http://127.0.0.1:8080/hello.txt
$ echo "Hello world" >> ~/nginx_doc_root/hello.txt
$ curl http://127.0.0.1:8080/hello.txt
$ docker stop nginx_8080
// -v (--volume) 대신 --mount 사용 방법
$ docker run --rm -d -p 8080:80/tcp \
--mount type=bind, \
src=/home/.../nginx_doc_root, \
dst=/usr/share/nginx/html \
--name nginx_8080 nginx
$ docker run --rm -it --name ubuntu_bash ubuntu bash
root@asdfasdfa:/# echo $LANG // blank
root@asdfasdfa:/# exit
$ docker run --rm -it -e LANG=en_US.utf8 \
--name ubuntu_bash ubuntu bash
root@asdfasdfa:/# echo $LANG // en_US.utf8
root@asdfasdfa:/# exit
docker run -it ...
ctrl+p && ctrl+q (^P^Q)
docker run -rm -itd --name ubuntu_bash ubuntu bash
docker attach ubuntu_bash
: detach mode로 실행했기 때문에, 바로 터미널에 진입할 수 없고, attach를 사용해서 진입해야 함