一、docker run 启动容器
语法:docker run [ options ] IMAGE[:TAG | @DIGEST ] [COMMAND ] [ ARG... ]
选项:
-d 指定容器在后台运行
-it 让容器能够与终端进行交互 (it一般一起使用)
--name 指定容器的名称
-p 将容器端口映射到主机上的端口 (格式: 宿主机端口:容器端口)
-v 指定卷并将器挂载到容器中 (格式:<host目录>:<容器目录>)
-P 随机端口映射,容器内部端口随机映射到主机的端口(49153起到65535)
-e 设置环境变量
实例:启动一个mysql容器并映射端口号
docker run -itd --name mysql-stu -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
--name mysql-stu 指定容器名称mysql-stu
-p 3306:3306 映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
-e MYSQL_ROOT_PASSWORD=123456 配置环境变量 制定root用户密码为123456
mysql 是镜像名
二、从外部访问容器应用
使用外部访问应用,通过-P或-p参数指定端口映射,-P 大写 随机映射一个49000~49900端口到内部容器开放的网络端口
-p小写 可以指定端口映射,格式:IP:HostPort:ContainerPort | IP::ContainerPort | HostPort:ContainerPort
提示:-p 的三种写法
docker run -p ip:主机端口:容器端口
docker run -p 主机端口:容器端口 (常用)
docker run -p 容器端口
docker container run -it -d --name 起一个容器名 -p 本地端口:容器端口 容器名
# 本地5000端口映射到容器5001端口 docker container run -it -d --name nginx_server1 -p 5000:5001 nginx # 通过多个-p绑定多个端口 docker container run --name webapp -d -p 5000:5000 -p 5001:5001 nginx # 映射指定地址的指定端口 docker container run --name webapp -d -p 127.0.0.1:5000:5000 nginx # 使用udp标记指定udp端口 docker container run --name webapp -d -p 127.0.0.1:5000:5000/udp nginx
三、映射所有接口地址
四、映射到指定地址的任意端口
IP::ContainerPort 绑定localhost 任意端口到容器的5000端口,本地主机会自动分配一个端口
# 映射指定地址的任意端口 docker container run --name webapp -d -p 127.0.0.1::5000 nginx
五、查看映射端口配置