1. 程式人生 > 實用技巧 >docker最基本指令以及如何連線進入docker構建的redis等操作

docker最基本指令以及如何連線進入docker構建的redis等操作

Docker

基本命令

ip addr:檢視網路ip

uname -r:檢視center os 版本

yum install docker:安裝docker(centeros7可以,8版本不支援)

systemctl start docker:啟動docker

systemctl stop docker:停止docker

docker -v:檢視docker版本號

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

1.進入docker 目錄

root@Rightsec:~# cd /var/lib/docker
root@Rightsec:/var/lib/docker# ls
builder buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes

2.進入containers,每個序列號都是一個image

root@Rightsec:/var/lib/docker# cd containers/
root@Rightsec:/var/lib/docker/containers# ls
e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e

3.進入映象可以看到

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

4.進入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中)

methodNameroot物件當前被呼叫的方法名#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