以下操作均在虛擬機CentOS7中
一、Docker安裝與啓動
安裝
通過以下命令查看內核版本爲3.10,支持docker
uname -r
3.10.0-693.el7.x86_64
安裝一些必要的系統工具和添加軟件源信息
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝docker-ce即社區版
sudo yum -y install docker-ce
啓動
啓動docker後臺服務
sudo systemctl start docker
說明
docker默認安裝在/var/lib目錄下,啓動的容器將放在containers目錄下
[root@localhost docker]# pwd
/var/lib/docker
[root@localhost docker]# ls
containers image network overlay2 plugins swarm tmp trust volumes
二、安裝Redis
安裝
直接運行pull
docker pull redis5.0
查看鏡像,我pull一個最新版和5.0因此顯示兩條
[root@localhost containers]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis 5.0 a55fbf438dfd 4 weeks ago 95 MB
docker.io/redis latest a55fbf438dfd 4 weeks ago 95 MB
啓動redis
啓動redis-server
docker run --name some-redis -d redis redis-server --appendonly yes
啓動redis-cli
docker run -it --network some-network --rm redis redis-cli -h some-redis
報錯
docker: Error response from daemon: Conflict. The container name “/xxxx” is already in use …
出現上面錯誤是因爲容器重名了,可以換一個name啓動,也可以將原來容器刪除
docker container rm xxxx
自定義配置文件啓動
創建redis目錄並將redis.conf文件copy到目錄下
[root@localhost containers]# cd /home/redis
[root@localhost redis]# ls
redis.conf
自定義方式啓動
docker run -d --privileged=true -p 6379:6379 -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data --name frog-redis redis redis-server /etc/redis/redis.conf --appendonly yes
–privileged=true 容器內的root擁有真正root權限,否則容器內root只是外部普通用戶權限
-p 6379:6379 端口映射
-v /home/redis/redis.conf:/etc/redis/redis.conf 映射配置文件
-v /home/redis/data:/data 把redis持久化的數據在宿主機內顯示,做數據備份
redis-server /etc/redis/redis.conf 這個是關鍵配置,讓redis不是無配置啓動,而是按照這個redis.conf的配置啓動
–appendonly yes redis啓動後數據持久化
如果報端口映射失敗,可以重啓一下docker
service docker restart
查看狀態
[root@localhost containers]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1196c78b1c78 redis “docker-entrypoint…” 17 seconds ago Up 16 seconds 0.0.0.0:6379->6379/tcp frog1-redis
測試連接
使用jedis客戶端測試
Jedis jedis = new Jedis("192.168.74.10",6379);
Set<String> keys = jedis.keys("*");
System.out.println(keys); // [] 爲空但是說明連接通了
jedis.close();
三、Docker常用簡單命令
查看當前正在運行容器
docker ps
查看所有容器狀態
docker ps -a
啓動或停止容器
docker start/stop id/name
查看本地鏡像
docker images
刪除容器
docker rm id/name
刪除鏡像
docker rmi id/name