docker_management

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
docker_management [2018/11/23 12:29] – created andonovjdocker_management [2020/01/10 19:24] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====Overview====+=====Overview=====
 In order to connect to docker, you should firstly know the name of the docker container. This can be obtained as follows: In order to connect to docker, you should firstly know the name of the docker container. This can be obtained as follows:
  
Line 32: Line 32:
 [root@tain-cx-uatdkrdb1 ~]# docker exec -it cas1 /bin/bash [root@tain-cx-uatdkrdb1 ~]# docker exec -it cas1 /bin/bash
 root@46fac822cffe:/#    <- We are on 1st container :)  root@46fac822cffe:/#    <- We are on 1st container :) 
 +</sxh>
 +
 +=====File Migration with Mongo=====
 +Migration to and from the docker is done rather easily, even when you have to export a database or so:
 +
 +
 +====Export collection====
 +The export from Mongo is done via the standard utils like: mongoexport, but firstly we have to see our container:
 +
 +<sxh bash>
 +[root@tpb-mts-stdkr1 ~]# docker container ls
 +CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS                                      NAMES
 +0ac74afee7b7        nginx:latest                               "nginx -g 'daemon of…"   7 weeks ago         Up 7 weeks          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   production_nginx_1
 +c188736759e9        docker.tain.com/incident.backend:latest    "./server"               7 weeks ago         Up 33 hours         0.0.0.0:3000->8080/tcp                     production_incidenttool_backend_1
 +18e980dee75c        docker.tain.com/incident.frontend:latest   "nginx -g 'daemon of…"   7 weeks ago         Up 33 hours         0.0.0.0:8080->80/tcp                       production_incidenttool_frontend_1
 +8385665052a3        mongo                                      "docker-entrypoint.s…"   4 months ago        Up 33 hours         0.0.0.0:27017->27017/tcp                   production_incidenttool_mongo_1
 +e03d9bc636c5        mongo                                      "docker-entrypoint.s…"   5 months ago        Up 33 hours         0.0.0.0:27018->27017/tcp                   recordingtool_mongo_1
 +e4031dbf6b08        mongo-express                              "tini -- /docker-ent…"   5 months ago        Up 33 hours         0.0.0.0:8082->8081/tcp                     recordingtool_mongo_management_1
 +667870179b38        recordingtool/server:latest                "./server"               5 months ago        Up 33 hours                                                    recordingtool_server_1
 +5d37f142d32b        netdata/netdata                            "/usr/sbin/run.sh"       8 months ago        Up 27 hours         0.0.0.0:19999->19999/tcp                   netdata
 +(reverse-i-search)`': ^C
 +</sxh>
 +
 +Then we can connect to it as follows:
 +
 +<sxh bash>
 +[root@tpb-mts-stdkr1 ~]# docker exec -it 8385665052a3 /bin/bash
 +</sxh>
 +
 +And then we can connect to the mongo, if we want to:
 +
 +<sxh bash>
 +root@8385665052a3:/# mongo admin -u root -p password
 +MongoDB shell version v4.0.4
 +connecting to: mongodb://127.0.0.1:27017/admin
 +Implicit session: session { "id" : UUID("310e30d1-8cf6-4e4a-b1a4-206d3c9104a1") }
 +MongoDB server version: 4.0.4
 +Server has startup warnings:
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten]
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten]
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
 +2020-01-09T01:33:38.696+0000 I CONTROL  [initandlisten]
 +---
 +Enable MongoDB's free cloud-based monitoring service, which will then receive and display
 +metrics about your deployment (disk utilization, CPU, operation statistics, etc).
 +
 +The monitoring data will be available on a MongoDB website with a unique URL accessible to you
 +and anyone you share the URL with. MongoDB may use this information to make product
 +improvements and to suggest MongoDB products and deployment options to you.
 +
 +To enable free monitoring, run the following command: db.enableFreeMonitoring()
 +To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
 +---
 +
 +>
 +</sxh>
 +
 +
 +Export of the database, as said again, is done with the standard utils:
 +<sxh bash>
 +root@8385665052a3:/# mongoexport --db=incident --collection=procedures --query='{"game_type":"BAC"}' --out=bac_procedures.json -u "root" -p "password" --authenticationDatabase admin
 +2020-01-10T10:54:55.975+0000    connected to: localhost
 +2020-01-10T10:54:55.986+0000    exported 71 records
 +root@8385665052a3:/# exit
 +</sxh>
 +
 +And then we can copy it to the main machine:
 +
 +<sxh bash>
 +root@8385665052a3:/# exit
 +[root@tpb-mts-stdkr1 ~]#
 +[root@tpb-mts-stdkr1 ~]#
 +[root@tpb-mts-stdkr1 ~]# docker cp 8385665052a3:bac_procedures.json bac_procedures.json
 +[root@tpb-mts-stdkr1 ~]# ls -lart
 +total 784672
 +-rw-r--r--.  1 root root       129 Dec 29  2013 .tcshrc
 +-rw-r--r--.  1 root root       100 Dec 29  2013 .cshrc
 +-rw-r--r--.  1 root root       176 Dec 29  2013 .bash_profile
 +-rw-r--r--.  1 root root        18 Dec 29  2013 .bash_logout
 +drwxr-----.  3 root root        19 Aug 27  2018 .pki
 +drwx------.  2 root root        26 Aug 27  2018 .docker
 +drwx------.  3 root root        18 Dec  4  2018 .config
 +-rw-r--r--.  1 root root      2162 Jan 14  2019 star.amazinggaming.com.crt
 +-rw-r--r--.  1 root root      1674 Jan 14  2019 star.amazinggaming.com.key
 +-rw-r--r--.  1 root root       176 Mar 22  2019 .bashrc
 +dr-xr-xr-x. 18 root root       239 Jun 19  2019 ..
 +drwxr-xr-x.  3 root root       192 Jul  4  2019 pit.configurator
 +drw-r--r--.  7 root root      4096 Jul 22 08:39 incident.frontend
 +drwxr-xr-x.  5 root root       131 Aug 12 05:07 recording.tool
 +-rw-r--r--.  1 root root      1894 Aug 12 05:20 production.json
 +drwxr-xr-x. 11 root root      4096 Aug 21 13:25 net.box
 +-rw-r--r--.  1 root root 299124736 Nov 15 08:35 incident.backend.tar
 +drwxr-xr-x.  3 root root        31 Nov 15 08:36 backup
 +drw-r--r--.  8 root root       244 Nov 18 06:56 incident.backend
 +drwxr-xr-x.  2 root root       196 Nov 20 14:44 nginx
 +-rw-r--r--.  1 root root 106871452 Jan  9 08:23 logs_bacnkend.txt
 +-rw-r--r--.  1 root root 365611371 Jan  9 08:28 logs_mango.txt
 +drwx------.  2 root root        48 Jan 10 10:01 .ssh
 +-rw-------.  1 root root     26656 Jan 10 10:51 .bash_history
 +-rwxr-xr-x.  1 root root  31719936 Jan 10 10:51 incident.frontend.tar
 +-rw-r--r--.  1 root root     92587 Jan 10 10:54 bac_procedures.json
 +</sxh>
 +
 +
 +We can also perform couple operations like, exchange the BAC -> DT
 +<sxh bash>
 +sed 's/BAC/DT/g' bac_procedures.json | tee dt_procedures.json
 +</sxh>
 +
 +We can also remove the _id column as follows:
 +
 +<sxh bash>
 +sed -i '/"_id":/s/"_id":[^,]*,//' dt_procedures.json
 +</sxh>
 +
 +And we can take it back:
 +<sxh bash>
 +docker cp dt_procedures.json 8385665052a3:dt_procedures.json 
 </sxh> </sxh>
  • docker_management.1542976146.txt.gz
  • Last modified: 2019/10/18 20:04
  • (external edit)