RammusXu / rammusxu.github.io

My profile
https://rammusxu.github.io/
2 stars 0 forks source link

Docker小抄 #38

Closed RammusXu closed 7 years ago

RammusXu commented 8 years ago
# 看所有的 container
docker ps -a

第一次使用的 Image 可以用以下方法測試,Ctrl + C後會自動刪除該 container

--rm teminal結束時自動刪除 container -it 確保有 attach container ,有可能有別人還保留連線,造成沒有正確刪除 container。

docker run --rm -it [image]

MySQL

ref: https://peihsinsu.gitbooks.io/docker-note-book/content/common-docker-mysql.html

# Run
docker run --name local-mysql mysql

# Run mysql with mounting
docker run --name mysql \
       -p 3306:3306 \
       -v /Users/rammus/docker-workspace/mysql/my.cnf:/etc/mysql/my.cnf \
       -v /Users/rammus/docker-workspace/mysql/.data:/var/lib/mysql \
       -e MYSQL_ROOT_PASSWORD=123123123 \
       -d mysql
# 進入 local-mysql 這個 container 的 mysql CLI
### 在 local-mysql 裡面執行 mysql -p123123123
docker exec -it local-mysql mysql -p123123123
#  進入 container bash
### by ID
docker exec -it 665b4a1e17b6 /bin/bash
### by Name
docker exec -it some-mysql /bin/bash

讓 mysql container 執行外部 .sql 檔

ref: http://depressiverobot.com/2015/02/19/mysql-dump-docker.html

### 選擇執行的 container "docker exec -i mysql"
### SQL command "mysql -p123123123 < ./dumpping-data.sql"
docker exec -i mysql mysql -p123123123 < ./dumpping-data.sql

清除無用的docker volumn

ref: https://github.com/chadoe/docker-cleanup-volumes

# 檢查
docker volume ls -qf dangling=true

# 清除
docker volume rm $(docker volume ls -qf dangling=true)

檢查Log

docker logs --tail=5 restheartdocker_mongodb_1
docker logs -f --tail=5  restheartdocker_restheart_1

檢查使用資源

docker stats
RammusXu commented 8 years ago

attach

docker attach --sig-proxy=false
RammusXu commented 8 years ago

Run memcached

docker run -p 11211:11211 -d memcached
RammusXu commented 7 years ago
docker exec -it restheartdocker_mongodb_1 bash

# backup
docker exec -it restheartdocker_mongodb_1 mongodump
docker cp restheartdocker_mongodb_1:/dump mongo-dump
mv mongo-dump/dump mongo-dump/dump-$(date +%Y%m%d_%H%M%S)
docker exec -it restheartdocker_mongodb_1 rm -rf /dump

# restore
docker cp dump-1013/ restheartdocker_mongodb_1:/
docker exec restheartdocker_mongodb_1 mongorestore dump-1013

在 restore 之前,先刪除掉 gundamLog 這個 database。

mongo-restore

開始 restore

restoring-start

結束 restore

restoring-done

因為只有drop gundamLog,所有 restore 的時候會發現 testdb 的資料都會跳出 duplicate 的錯誤,這是正常的現象。

restoring-duplicate

可以看到 restore 後,db, collection 都回復成原本的狀態

mogno-restore-result
RammusXu commented 7 years ago

Jenkins

docker run --rm -u `id -u` -p 8080:8080 -p 50000:50000 -v /home/ec2-user/Jenkins-home:/var/jenkins_home --name jenkins jenkins