docker最基本指令以及如何連線進入docker構建的redis等操作
基本命令
ip addr
:檢視網路ip
uname -r
:檢視center os 版本
yum install docker
:安裝docker(centeros7可以,8版本不支援)
systemctl start docker
:啟動docker
systemctl stop docker
:停止docker
docker -v
systemctl enable docker
:設定docker開機自啟動
docker常用操作
docker search 關鍵字
:搜尋docker hub上是否有對應的映象
docker pull 映象名:tag
:其中:tage是可選的,代表版本號,預設latest
docker images
:檢視所有本地映象
docker rmi image-id
:刪除指定的本地映象
docker容器相關操作
docker run --name container-name -d image-name
:建立docker容器
-
--name 起名字
-
-d 後臺執行
-
-p 主機->伺服器 對映埠
docker ps
:檢視執行中的容器
docker ps -a
:檢視所有容器
docker rm container-id
:移除指定容器
docekr start container-id/container-name
:開啟某個容器
docker stop container-id/container-name
-p 8888:8080
: -p代表埠對映 主機埠8888:容器埠8080【docker run --name mytomcat -d -p 8887:8080 tomcat:8.5.59
】
docker logs container-id/container -name
:檢視容器日誌
docker開啟資料庫
訪問docker官方 如Mysql:https://registry.hub.docker.com/_/mysql
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
位置
docker pull下來的映象放哪兒了?本機docker版本
docker –version
Docker version 18.09.01.進入docker 目錄
root@Rightsec:~# cd /var/lib/docker
root@Rightsec:/var/lib/docker# ls
builder buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes2.進入containers,每個序列號都是一個image
root@Rightsec:/var/lib/docker# cd containers/
root@Rightsec:/var/lib/docker/containers# ls
e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e3.進入映象可以看到
root@Rightsec:/var/lib/docker/containers# cd e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e/
root@Rightsec:/var/lib/docker/containers/e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e# ls
checkpoints hostconfig.json mounts
config.v2.json hostname resolv.conf
e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e-json.log hosts resolv.conf.hash4.進入image資料夾,裡面有repositories.json的檔案,詳細記錄了各映象的一些資訊:
root@Rightsec:/var/lib/docker# cd image/
root@Rightsec:/var/lib/docker/image# ls
overlay2
root@Rightsec:/var/lib/docker/image# cd overlay2/
root@Rightsec:/var/lib/docker/image/overlay2# ls
distribution imagedb layerdb repositories.json
高階篇
快取的SPEL表示式
(springboot中)
methodName | root物件 | 當前被呼叫的方法名 | #root.methodname |
---|---|---|---|
method | root物件 | 當前被呼叫的方法 | #root.method.name |
target | root物件 | 當前被呼叫的目標物件例項 | #root.target |
targetClass | root物件 | 當前被呼叫的目標物件的類 | #root.targetClass |
args | root物件 | 當前被呼叫的方法的引數列表 | #root.args[0] |
caches | root物件 | 當前方法呼叫使用的快取列表 | #root.caches[0].name |
Argument Name | 執行上下文 | 當前被呼叫的方法的引數,如findArtisan(Artisan artisan),可以通過#artsian.id獲得引數 | #artsian.id |
result | 執行上下文 | 方法執行後的返回值(僅當方法執行後的判斷有效,如 unless cacheEvict的beforeInvocation=false) | #result |
Redis
docker進入
docker ps
docker exec -it 1568d96bcfcc redis-cli
docker exec -it 1568d96bcfcc(容器id) redis-cli
使用exit退出,回到root
select 1
:選擇1號資料庫(切換資料庫)
dbsize
:當前資料庫大小
下方的name就是我設定的key
set name 寧新傑
get name
append msg hello
append msg JD!
:append追加(append msg ' ')可以追加空格
keys *
:檢視資料庫所有的key
exists name
:是否存在name這個key
flushdb
:清空當前資料庫
flushall
:清空全部資料庫
del name
:刪除當前key
move name 1
:將本資料庫下name這個key移動到1號資料庫
expire name 10
:設定當前key的過期時間為10s
tt1 name
:檢視當前key的剩餘過期時間(time to live 生存時間)
type name
:檢視當前key型別
strlen name
:獲取當前key的長度
incr view
:數字向上遞增1(即使type view型別是string)
decr view
:數字向下遞減1
incrby view 5
:遞增5
decrby view 3
:遞減3
getrange name 0 2
:擷取索引0~2(包括2,這裡注意和java有點區別)【閉區間】
getrange name 0 -1
:擷取整個,這個和直接get name是一樣的
getrange name 0 -2
:擷取到倒數第二個(也就是不要最後一個字元)
substr name 0 2
:擷取字串0~2索引閉區間的字元 (nxj)
setrange key1 0 qq
:從0開始將前兩個字元替換成qq 【abcd-->qqcd】
setnx k2 'ouhou'
:如果k2這個key不存在則設定鍵為k2值為ouhou,否則不做設定
setex k3 20 'nale'
:設定k3的值並且給定過期時間(如果key存在則覆蓋)
加上m救是multi
mset k1 v1 k2 v1 [...等等]
:可以一次性放多個鍵值
mget k1 k2
:一次性get多個鍵的值
msetnx k4 v4 k3 k5
:這裡如果有一個key是存在的,整個設定都是不成功的,也就是該語句保證了這個操作的原子性
getset k3 value3
:也就是先get然後set,返回的是get的結果,然後再呼叫set,如果key開始不存在,那麼get為null