2021

Docker Command 정리

아침엔커피한잔 2021. 4. 10. 09:52

#. 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

#. Docker-compose

#. 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 registry