docker 基本命令
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | # -a :提交的镜像作者;# -c :使用Dockerfile指令来创建镜像;
 # -m :提交时的说明文字;
 # -p :在commit时,将容器暂停。
 docker commit -a "author" -m "commit msg" {commitId} {name}:{tag}
 #docker commit -a "author" -m "commit msg" {commitId} author/myubuntu:v1
 
 docker login
 
 docker push author/myubuntu:v1
 
 docker tag {imageId} {name}:{tag}
 
 docker run --name nginx-text -p 9090:90 -d nginx
 
 | 
create network
| 1
 | docker network create --subnet 172.72.72.0/24 redisnet
 | 
设置docker开机启动
容器使用
启动容器
以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
| 1
 | $ docker run -it ubuntu /bin/bash
 | 
参数说明:
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
 要退出终端,直接输入 exit:| 1
 | root@ed09e4490c57:/# exit
 |  
 
启动已停止运行的容器
查看所有的容器命令如下:
使用 docker start 启动一个已停止的容器:
| 1
 | $ docker start b750bbbcfd88
 | 
后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
| 1
 | $ docker run -itd --name ubuntu-test ubuntu /bin/bash
 | 
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。
停止一个容器
停止容器的命令如下:
停止的容器可以通过 docker restart 重启:
$ docker restart <容器 ID>
进入容器
- exec 命令| 1
 | docker exec -it 243c32535da7 /bin/bash  # container id or name
 |  
 
- 导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
| 1
 | $ docker export 1e560fca3906 > ubuntu.tar
 | 
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
| 1
 | $ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
 | 
此外,也可以通过指定 URL 或者某个目录来导入,例如:
| 1
 | $ docker import http://example.com/exampleimage.tgz example/imagerepo
 | 
删除容器
删除容器使用 docker rm 命令:
| 12
 3
 4
 
 | $ docker rm -f 1e560fca3906
 # delete all containers
 docker rm -vf $(docker ps -aq)
 
 | 
删除 image
| 12
 3
 4
 
 | docker rmi {imagename or imageId}
 # delete all the images
 docker rmi -f $(docker images -aq)
 
 | 
docker  Dockerfile build and run
| 12
 
 | docker build --tag=spring-metrics .docker run -p8887:8888 message-server:latest
 
 | 
常见问题
ps命令在docker容器不存在
| 1
 | apt-get update && apt-get install procps -y
 | 
容器 下查看redis的安装目录的方法是什么
得到了进程号 xxxx,
然后 ls -l /proc/xxxx/cwd
Redis集群Hash槽分配异常 CLUSTERDOWN Hash slot not served的解决方式
| 12
 
 | redis-cli --cluster check  192.168.171.134:6379redis-cli --cluster fix 192.168.171.134:6379
 
 | 
| 1
 | redis-cli -c -h 192.168.171.134
 | 
ref