镜像管理
看本机存在的images
docker images
删除某个镜像,参数是ImageID:
docker rmi -f 32c921902fdb
容器管理
启动容器:
docker run -p 1935:1935 ossrs/srs:3
查看运行中的容器:
docker ps
查看所有容器,包括已经停止的容器:
docker ps -a
可以指定当容器退出时,自动删除,参数--rm
:
docker run --rm -p 1935:1935 ossrs/srs:3
删除已经停止的容器:
docker container prune -f
容器名称
容器ID不好记,可以用名称,比如:
docker run --name=srs -p 1935:1935 ossrs/srs:3
或者对已有的容器,改名字:
docker rename 80d9d451bb78 srs
根据名称启动容器:
docker start -i srs
或者再开一个终端:
docker exec -it srs bash
环境变量
传递ENV环境变量
HostIP=`./auto/get_host_ip.sh` &&
docker run -p 1935:1935 -p 9090:9090 --env DOCKER_HOST=$HostIP \
ossrs/srs:3
Docker瘦身
如果发现自己的Docker太大,可以先把一些镜像导出,比如:
docker save ossrs/srs:3 -o srs-3.tar
删除Docker文件,可以选择下面任意方式删除Docker的磁盘文件:
- 点
Reset
,然后点Remove all data
。 - 点
Disk
,然后点Open in Finder
,直接删除Docker.qcow2
,然后重启Docker。
Docker重启后,导入你要的镜像,例如:
docker load -i srs-3.tar
这样就可以将Docker占用的临时磁盘空间彻底瘦身。
拷贝文件
可以将容器的文件拷贝出来,先启动容器,比如SRS的dev镜像:
docker run -it --name=dev ossrs/srs:dev bash
从容器中拷贝FFmepg,比如:
docker cp dev:/usr/local/bin/ffmpeg .
端口映射
映射1935端口给SRS:
docker run -p 1935:1935 --rm ossrs/srs:3
映射TCP/1935,以及UDP/8000端口给SRS:
docker run -p 1935:1935 -p 8000:8000/udp --rm ossrs/srs:3
映射一系列端口,比如5000到6000端口:
docker run -p 50000-50010:50000-50010 --rm ossrs/srs:3
注意:不能映射太多端口,会有性能问题。
映射多个端口,TCP/1935和1985,UDP/8000端口给SRS:
docker run -p 1935:1935 -p 1985:1985 -p 8000:8000/udp --rm ossrs/srs:3
映射目录
可以将本机的目录,映射到容器中,比如SRS的DEV开发环境:
cd srs/trunk &&
docker run -v `pwd`:/srs -w /srs -p 1935:1935 -it --rm ossrs/srs:dev bash
这样,就可以在CentOS容器中,编译本机的文件,本机也可以打开IDE编辑。
开调试特权
如果在容器中要启动gdb调试,那么就要开特权--privileged
,比如调试SRS:
cd srs/trunk &&
docker run --privileged -v `pwd`:/srs -w /srs -p 1935:1935 -it --rm ossrs/srs:dev bash
这样就可以在容器中,使用GDB调试SRS了。
网友评论