1. 通过端口映射
我在阿里云上面输入上面的语句,然后就可以通过域名+5000端口号访问了
docker run -d -p 5000:5000 --name duankou training/webapp python app.py
docker run -d -p 127.0.0.1:5001:5001 --name duankou2 training/webapp python app.py
这样无法通过域名+端口号访问 ,因为5001在docker里面不能访问
docker run -d -p 101.200.55.12:5001:5001 --name duankou3 training/webapp python app.py
同样因为5001在docker里面不能访问
docker run -d -p 5001:5000 --name duankou3 training/webapp python app.py
可以访问
Up 50 seconds 5000/tcp, 0.0.0.0:5001->5001/tcp duankou3
Up 5 minutes 0.0.0.0:5000->5000/tcp duankou
第一个不可以通过端口访问,第二个 可以
0.0.0.0:5001->5000/tcp 这样可以通过5001访问
2. 说明一个docker容 器内部开放端口,可以映射到主机的不同端口上,前提是docker的端口是可以开放的
下面是基于阿里云的3307端口,用docker装一个MySQL
下载 docker pull mysql:5.7
跑:docker run -p 3307:3306 --name dockerMysql5.7 -v $PWD/conf:/etc/mysql/conf.d -v
$PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
端口映射情况 33060/tcp, 0.0.0.0:3307->3306/tcp dockerMysql5.7
说明每一个docker容器都有自己的端口,比如有自己的80 3306
你需要的是把docker的端口映射到主机的端口上,一般都是3306映射3306,但是如果想用多个的话,就可以映射不同的端口
docker run -p 3307:3306 --name dockerMysql5.7 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
把docker的3306端口映射到主机的3307上
3. 删除已经创建的docker名称
docker container stop duankou2
docker container rm duankou2
4. docker安装NGINX
docker pull nginx
docker run -ti -d --name my-nginx -p 8081:80 nginx
刚才我们发现了只要把docker的一个开放的端口映射到外部端口就能访问,所有在阿里云已经有nginx的条件下
我们还想测试NGINX,我们就需要把docker的80端口映射到阿里云的其中一个端口8081上,然后通过域名+8081就可以访问NGINX了
5. docker 安装tomcat8.5
docker pull tomcat:8.5
docker run --name dockerTomcat8.5 -p 8085:8080 -v $PWD/8085:/usr/local/tomcat/webapps/8085 -d tomcat:8.5
rz 上传war包
rz 上传 service.xml 和 logback.xml
进入docker
docker exec -it dockerTomcat8.5 bash
删除原来的Service.xml文件在conf目录下
rm -rf service.xml
从阿里云当前文件夹移到docker里面
docker cp logback.xml dockerTomcat8.5:/usr/local/tomcat/bin/
docker cp service.xml dockerTomcat8.5:/usr/local/tomcat/conf/
测试:启动服务器./startup.sh
发现可以在网页打开,继续转移WAR包
Docker没有VIM
apt update
apt install vim