笔记:DOCKER相关

2021-03-06  本文已影响0人  winlinvip

镜像管理

看本机存在的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的磁盘文件:

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了。

上一篇 下一篇

猜你喜欢

热点阅读