1.启动docker
docker daemon &
2.拉取镜像
不要拉官网的,有墙.我用的时速云的
docker pull index.tenxcloud.com/textcloud/java:latest
3.打标签
docker tag index.tenxcloud.com/tenxcloud/java java
就是把这个镜像取个别名
4.新建一个容器并启动
docker run -p 5000:5000 --name container1 tomcat-1
如果加上-d是以后台方式运行
即绑定容器的端口到宿主机的端口上,否则是随机的端口,即外部访问不到.
5000:5000前面的是暴露出去的,后面的是容器内启动使用的端口
container1是自定义的容器名字,tomcat-1是镜像,每次启动都会创建一个容器!
一定注意不要把-p放到 后面
docker run --name container1 tomcat-1 -p 5000:5000
这个会报错
[root@k8s_master docker]# docker run --name container1 tomcat-1 -p 5000:5000
exec: "-p": executable file not found in $PATH
Error response from daemon: Cannot start container 872258b0ace25c17d4c4d1f11e420c3d394ec03a2c7ecd6a91d02184c54f5073: [8] System error: exec: "-p": executable file not found in $PATH
5.启动一个容器
docker start container2
如果用第四步启动了一个容器后,再次执行相同命令会提示已经存在container了,因为run相当于是新建而不是简单的启动,如果我们要启动已经存在的container则直接start + container name即可
6.停止一个容器
docker stop container
7.输出日志
docker logs -f container2
-f是实时输出
8.查看容器端口号映射
docker port container 5000
:查看容器的5000端口对应本地机器的IP和端口号
9.进入具体的容器(就像登录linux一样去操作容器)
docker exec -it container2 /bin/bash
10.拷贝war、file到容器里面
docker cp DemoOne.war container2:tomcat/webapps
11.退出容器
exit
12.查看制定容器名称
docker ps | grep name