Docker Command 정리
#. Docker List
$ docker version # cf. docker --version
$ docker info # docker system info
$ docker --help
$ docker run hello-world
$ docker images
$ docker ps # cf. docker ps -a
$ docker-machine ls # Oracle VM VirtualBox
# Homedir : 사용자/.docker
run docker container for ubuntu image
docker container run
$> docker container run ubuntu:latest /bin/echo 'Hello world'
$> docker ps -a
$> docker container ps -a
$> docker system df
$> docker image ls
$> docker pull <docker-image-name[:tag-name]>
$> docker container run --name -d -p 80:80
$> docker [start | stop | restart]
$> docker container [pause | unpause]
$> docker pull nginx
$> docker image ls
$> docker container run --name webserver -d -p 80:80 nginx
$> docker container ps -a
$> docker container [top | stats] webserver
$> docker container rm webserver # cf. prune
docker image
[image-name]
$> docker image [pull | push]
$> docker image ls
$> docker image inspect nginx
$> docker search python
$> docker image rm nginx # nginx image 삭제
$> docker image prune # 사용하지 않는 모든 image 삭제!
$> docker login # login to docker hub
$> docker logout
$> docker container run -it --name "test1" centos /bin/cal
$> docker container run -it --name "cosh" centos /bin/bash
[root@b5152134ff15 /]# cat /etc/hosts
[root@b5152134ff15 /]# exit # Ctrl+P, Ctrl+Q(Keep Your Container Running In The Background)
$> docker container run -it --restart=always --name "centsh" centos /bin/bash
$> docker container run -itd --name ubsh ubuntu bash
$> docker container attach ubsh # Ctrl+P, Ctrl+Q
$> docker container [stop | start]
$> docker container attach ub
#> exit(kill) or Ctrl+P, Ctrl+Q (detach)
$> docker container exec -it ub /bin/cat /etc/hosts
$> docker start webserver
$> docker container exec -it webserver /bin/echo "Hello"
$> docker container port oracle
$> docker container rename webserver nginxserver
$> docker search oracle
$> docker pull sath89/oracle-xe-11g # cf. wnameless/oracle-xe-11g
$> docker images # same as $> docker image ls
$> docker run -d --name ora -p 8080:8080 -p 1521:1521 sath89/oracle-xe-11g
$> docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle
$> docker ps
$> docker exec -it oracle bash
$> docker search mysql
$> docker pull mysql:5.7
$> docker images
$> docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=r!
--name mysql5 mysql:5.7
$> docker ps
$> docker exec -it mysql5 bash
#> mysql -u root -p
$> docker ps -a --format '{{.Names}} by {{.Image}} ---- {{.Status}}'
$> docker logs
backup the container to image
$> docker commit -p
$> docker save -o ~/backup/oracle.tar
load backuped image
$> docker load < ~/backup/oracle.tar
docker [container] cp :
docker [container] cp :
$> docker cp mysql5:/backup/dump.sql .
$> docker cp dump.sql mysql5:/
Share Directory
$> docker run -v :
cf. $> docker stop docker ps -q
https://logan.kr/383(How to install Docker to Oracle Cloud Instance)
apt-get update && apt-get upgrade
apt-get remove docker docker-engine docker.io containerd runc
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get install docker-ce docker-ce-cli containerd.io
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli
net.ipv4.ip_forward=1
sudo iptables -F
sudo iptables -X
iptables -A INPUT -p udp -m udp --dport 4789 -j ACCEPT
systemctl restart docker
https://www.edureka.co/community/15909/docker-swarm-join-a-docker-swarm-from-another-subnet
https://gist.github.com/harveyconnor/518e088bad23a273cae6ba7fc4643549
https://stackoverflow.com/questions/27187591/deploy-mongodb-replicaset-servers-with-docker-on-different-physical-servers
https://github.com/yo8568/mongo-replica-docker-swarm
https://harrytang.xyz/blog/mongodb-replica-docker-swarm
https://docs.docker.com/compose/networking/
https://docs.docker.com/network/network-tutorial-overlay/
https://javacan.tistory.com/entry/docker-start-10-swarm-compose-stack
https://www.sauru.so/blog/high-availability-of-docker-swarm/
https://ziwon.github.io/post/designing-scalable-portable-docker-container-networks/
https://github.com/smartsdk/mongo-rs-controller-swarm
https://smartsdk.github.io/smartsdk-recipes/utils/mongo-replicaset/readme/
https://raw.githubusercontent.com/aelsabbahy/miniswarm/master/miniswarm
https://subicura.com/2017/02/25/container-orchestration-with-docker-swarm.html
https://kibua20.tistory.com/124
https://www.joinc.co.kr/w/man/12/docker/limits
https://staffordwilliams.com/blog/2015/11/11/optimising-wordpress-and-mysql-docker-images-for-amazon-ec2-micro-instances/
docker service ps d60 --no-trunc
journalctl -fu docker.service
docker service ps --no-trunc {serviceName}
docker exec -i $CLI_ID bash -c "./script.sh PARAM"
docker node update --label-add mongo.replica=1 main
docker node update --label-add mongo.replica=2 sub
docker stack deploy -c docker-compose-init.yml mongo
docker stack deploy -c docker-compose-addauth.yml mongo
docker stack deploy -c docker-compose.yml mongo
iptables -nL
#iptables -F
#iptables -X
iptables -I INPUT 5 -i ens3 -p tcp --dport 2377 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 7946 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 4789 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4789 -j ACCEPT
iptables-save > /etc/iptables/rules.rules
echo "/sbin/iptables-restore < /etc/iptables.rules"" >> rc.local
iptables -I INPUT -p tcp --dport 8000 -m state --state NEW,ESTABLISHED -j ACCEPT
#vim /etc/rc.local
#/sbin/iptables-restore < /etc/iptables.rules
- https://ndb796.tistory.com/262 (우분투(Ubuntu) 리눅스 서버에서 IPtables를 활용해 방화벽 설정하기)
netfilter-persistent save
netfilter-persistent start
#And, you should login Manager node and run the under command.
#/initiate-master
#echo "Intializing replica set on master"
replicate="rs.initiate(); sleep(1000); cfg = rs.conf(); cfg.members[0].host = "mongo1:27017"";
rs.reconfig(cfg); rs.add({ host: "mongo2:27017", priority: 0.5 }); rs.add({ host: "mongo3:27017", priority: 0.5 }); rs.status();"docker exec -it $(docker ps -qf label=com.docker.swarm.service.name=overlay_mongo1) bash -c ""echo '${replicate}'' | mongo"
docker service update --publish-rm 27017:27017 overlay_mongo1
// if publish port was set before, need to remove first and update it.
docker stack rm mongo
docker volume rm $(docker volume ls -qf label=com.docker.stack.namespace=mongo)
docker service ps d60 --no-trunc
docker stack ps -qf label=com.docker.stack.namespace=mongo
docker exec -it $(docker ps -f name=mongovps_mongo1 -q) mongo --host vps_mongo2:27017 admin --eval "printjson(db.serverStatus())"
docker exec -it $(docker ps -f name=mongo_vps_mongo1 -q) mongo --host vps_mongo2:27017 admin --eval "printjson(rs.status())" | grep PRIMARY | head -1
docker exec -it $(docker ps -f name=mongo_vps_mongo1 -q) mongo --host vps_mongo2:27017 admin --eval "printjson(db.serverStatus())" | grep uptime | head -1
docker exec -it 2b48170b3484 mongo --host vps_mongo3:27017 admin --eval "db.auth("datadog", "datadog");printjson(db.serverStatus())"
docker exec -it $(docker ps -f name=mongo_vps_mongo1 -q) mongo --host vps_mongo1:27017 admin
docker exec -it $(docker ps -f name=mongo_vps_mongo1 -q) mongo --host vps_mongo-repl/vps_mongo2:27017,vps_mongo1:27017 admin
docker service update --replicas 0 mongo_vps_mongo2
docker logs $(docker ps -f name=mongo_vps_mongo1 -q) --details
docker service inspect udd --pretty
docker network inspect -v mongo-net
journalctl -fu docker.service
#. Docker
- https://tech.ssut.me/what-even-is-a-container/
- http://pyrasis.com/docker.html
- http://pyrasis.com/Docker/Docker-HOWTO
- brew cask install docker(docker.app을 한번 실행해줘야 docker command 사용가능)
- https://github.com/remotty/documents.docker.co.kr
- https://opentutorials.org/course/128/8657
- https://speakerdeck.com/anarcher/multi-host-networking-with-docker
- https://publish.dayone.app/post/1740z5r
- https://gongzza.github.io/docker/db-sample/
- 삭제:
- https://daddyprogrammer.org/post/1994/docker-kitematic-mysql-redis-rabbitmq-mongo/
- Web UI Portainer.io: https://blog.dalso.org/it/6468
- Rabbit MQ:https://kamang-it.tistory.com/entry/AMQPRabbitMQRabbitMQ%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95-1
- Docker를 이용한 NodeJS 개발:https://www.daleseo.com/docker-nodejs/
- docker run -d -p 2377:80 httpd:latest
- sudo systemctl disable apparmor.service --now
- sudo service apparmor teardown
#. Docker-compose
- https://www.daleseo.com/docker-compose-networks/
- docker-compose up -d, docker-compose down
- docker network ls, docker-compose exec web ping db
- curl -I localhost:8001, docker-compose exec alpine curl -I web:8000
- docker network create our-net, docker network inspect our-net,
- docker network connect our-net one-container
- docker network disconnect our-net one-container
- docker network rm our-net, docker network prune
- https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose
- https://velog.io/@ba93love/Vue.js%EB%A5%BC-docker%EB%A1%9C-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0
#. Portainer
- docker volume create portainer_data
- docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer
#. Docker swam
- docker swarm init --advertise-addr=111.111.111.111 --listen-addr= 111.111.111.111 111.111.111.111:2377
- docker swarm join --token SWMTKN-1-1kgan58dknxweyz3kqb2zp1y1rik01io58nue2teaorhuro3fi-1cnduwpxtr168kywpwa4efqd3 --advertise-addr 111.111.111.111 111.111.111.112:2377
- docker swarm join --token SWMTKN-1-1kgan58dknxweyz3kqb2zp1y1rik01io58nue2teaorhuro3fi-1cnduwpxtr168kywpwa4efqd3 --advertise-addr 111.111.111.111 111.111.111.112:2377
- https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04
- https://www.edureka.co/community/15909/docker-swarm-join-a-docker-swarm-from-another-subnet
- https://docs.docker.com/engine/reference/commandline/network_create/
- https://docs.docker.com/compose/compose-file/compose-file-v2/
- https://docs.docker.com/network/network-tutorial-overlay/
- https://arisu1000.tistory.com/27796
- https://stackoverflow.com/questions/41617824/fail-to-build-mongodb-replcaset-with-auth-on-swarm
#. Docker registry
- docker pull registry
- docker run -d -p 5001:5001 --name registryname registry
- https://waspro.tistory.com/532
- https://novemberde.github.io/2017/04/09/Docker_Registry_0.html
- https://stackoverflow.com/questions/61116766/add-insecure-registry-to-docker-in-ubuntu
- curl -X GET http://localhost:5001/v2/_catalog
- https://stackoverflow.com/questions/25436742/how-to-delete-images-from-a-private-docker-registry
- https://docs.google.com/presentation/d/1TN1SbNeKCMGd3OaGdOHm7OExeJxkVAXMVB6BJuukFy0/edit?usp=sharing