关于如何在docker中利用tomcat和MySQL容器部署java web应用的详细步骤
docker安装
-
Docker 要求 CentOS 系统的内核版本高于 3.10,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过`uname -r ` 命令查看你当前的内核版本
-
如果安装过请先卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.安装依赖设置yum仓库
安装依赖:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置仓库:
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker
yum install docker-ce docker-ce-cli containerd.io
5. 启动并加入开机启动
systemctl start docker
systemctl enable docker
6.验证是否安装成功
docker version
docker run hello-world
一键安装指令: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
docker 常用命令
构建镜像
docker build -t ubuntu:15.10 . -t表示 tag .表示当前文件dockerfile
docker build -t websocket .
docker远程仓库拉取镜像到本地
docker pull [options] NAME[:TAG]
查看当前拉取的全部镜像:
docker images
查看当前拉取的全部镜像详情:
docker images -a
查看指定的镜像(以hello-world为例):
docker images hello-world
启动容器docker的服务是在后台运行的,我们可以过 -d 指定容器的运行模式
docker run -itd --name ubuntu-test ubuntu /bin/bash
-d:让容器在后台运行。 -P:将容器内部使用的网络端口随机映射到我们使用的主机上。
docker run -d -P training/webapp python app.py
在宿主主机内使用 docker logs 命令,查看容器内的标准输出
docker logs websocket
查看容器运行情况 查看运行的容器:
docker ps/ docker container ls
查看容器详情 查看是否启动成功:
docker ps -a
停止容器
docker stop 2b1b7a428627
启动一个已停止的容器
docker start 2b1b7a428627
想要进入容器,可以通过以下指令进入,注意: 如果从这个容器退出,会导致容器的停止
docker attach
如果从这个容器退出,容器不会停止
docker exec -it 243c32535da7 /bin/bash
根据ContainerId移除指定的镜像
docker rmi [ContainerId]
删除容器
docker rm -f 1e560fca3906
载入镜像
docker pull training/webapp
可以查看挂载点信息
docker inspect test1
查看容器网络信息
docker inspect --format='{{json .NetworkSettings.Networks}}' $CONTAINER_ID
查看容器所有网络
docker network ls
查看容器网络被占用的容器
docker network inspect [network_name_or_id]
停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令
docker rm $(docker ps -a -q)
删除所有镜像
docker rmi $(docker images -q)
检查docker的服务是否起来了,比如你的端口号是8000,在宿主机
curl -i http://localhost:8000
ip转发开没开
sysctl net.ipv4.ip_forward
查看端口占用情况
netstat -ntpl
查看磁盘占用情况
df -h
内存是否充足
free -m或者top
docker启动:
systemctl start docker
service docker start
重启docker服务:
systemctl restart docker
sudo service docker restart
开机启动
systemctl enable docker
关闭docker:
systemctl stop docker
service docker stop
运行镜像
docker run [options] IMAGE[:TAG] [COMMAND] [ARG..]
IMAGE是镜像的名字
COMMAND是运行起来的时候要执行什么命令.
ARG表示这条命令运行需要的参数.
在前台运行容器命令如下,输入后容器就会运行,按ctrl+c可以终止容器的运行.
docker run [options] IMAGE[:TAG] [COMMAND] [ARG..]
docker run 运行找不到就会pull 去仓库找到运行
前台运行容器命令
docker run hub.c.163.com/library/nginx
查看主机8080端口是否开启
netstat -na |grep 8080
在后台运行容器:开放主机8080端口映射到容器的80端口上.P的话分配一个随机端口
docker run -d -p 8080:80 hub.c.1630com/library/nginx
调试容器内部的设置、查看一下日志等等,相当于进入了一个新的电脑
docker exec -it 02963d2002b bash
-i保证我们的输入有效,即使在没有detach的情况下也能运行.
-t表示将分配给我们一个伪终端.我们将在伪终端输入我们的内容.
后面是容器的id,即我们上面用ps查询出来的id,这个id可以少写几位,它会自动识别.
docker exec --help 查看更多
常用镜像服务部署
从网易蜂巢镜像中心下载mysql镜像
docker pull hub.c.163.com/library/mysql:latest
从网易蜂巢镜像中心下载nginx镜像
docker pull hub.c.163.com/library/nginx:latest
从网易的镜像中心找一个tomcat的镜像
docker pull hub.c.163.com/library/tomcat:latest