docker容器想要实现一些网络通信的功能,就需要端口映射,这里想实现三个目标:端口映射、多端口映射、xshell远程登陆docker容器。
一、端口映射
映射需要的命令是 -p 0000:0001,这里意味着宿主机的0000端口映射到了容器的0001端口,命令是在运行容器的时候加入的。
docker run -tid --name docker_name -p 8888:8888 image:01
这时候可能会有疑问,已经运行的容器怎么办,我现在的解决办法是:
1. 停掉容器
docker stop docker_name
2. 保存容器备份
docker commit docker_name image:01
一般这时候我就重命名原来的老容器(变成docker_name_old),我是想新容器替换掉那个,所以保持名字一致
docker rename docker_name docker_name_old
3. 利用备份重新启动容器
docker run -tid --name docker_name -p 8888:8888 image:01
二、多端口映射
可能有时候需要多个端口,比如ftp,比如hostlocal等等,就需要多映射,就很简单,有多少个映射就加多少个 -p 就好了:
docker run -tid --name docker_name -p 8888:8888 -p 8080:80 -p 888:888 image:01
三、xshell远程登陆docker容器
只需要把宿主机闲置端口(你希望用来远程登录的端口)映射到docker的22端口即可:
docker run -tid --name docker_name -p 8888:8888 -p 8080:80 -p 888:888 -p 8088:22 image:01
这时候用xshell或者其他ssh工具都可以通过8088端口远程进入到容器内。
四、其他
--privileged=true (用来获取主机root权限)