这里写目录标题
1.安装docker
使用官方推荐:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
验证安装:
docker --version
docker -v
2. 启动docker:
sudo systemctl start docker
3.制作docker镜像
编写Dockerfile,如下:
# VERSION 0.0.1 也可以在打包的时候指定打包版本
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER zqm
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD an-order.jar app.jar
#暴露端口
EXPOSE 8088
# 运行jar包
#RUN bash -c 'touch app.jar'
ENTRYPOINT ["java","-jar","app.jar"]
制作镜像 -t 参数是指定此镜像的tag名
docker build -t an-order .
<-- 打包指定版本!>
docker build -t an-order:v1.0 .
Docker images 显示创建的镜像
4.启动容器运行镜像:
<-- d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的8080
(项目中端口配置的是8080)端口!-->
docker run -d -p 8088:8088 an-order:v2.0
Docker ps 看运行的镜像
<-- --进入容器内部 查看日志等信息 !-->
docker exec -it 容器ID /bin/sh
docker exec -it c1d10a38c18d /bin/sh
5. docker容器连接宿主机上的mysql 方式
宿主机的ip是docker0中的ip:而不是localhost或者公网ip
application文件中数据库地址就可以使用 172.17.0.1:3306?..
在服务器中输入ifconfig,如图所示:
在docker运行时就和宿主机建立了虚拟网卡,可以通过ifconfig查看,会发现多了一个docker0,一般ip为172.17.0.1,它就是宿主机建立的网桥,用于与各个容器之间通信。
6.docker 相关命令
6.1 docker 关闭&开启&重启&自启动
启动 systemctl start docker
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭 service docker stop
关闭 systemctl stop docker
6.2 容器开启自动&关闭&重启
<-- 启动!-->
docker start 容器ID或容器名,建议使用容器ID
<-- d
Docker 容器的重启策略如下:
restart具体参数值详细信息:
no 默认策略,容器退出时不重启容器;
on-failure 在容器非正常退出时(退出状态非0)才重新启动容器;
on-failure:3 在容器非正常退出时重启容器,最多重启3次;
always 无论退出状态是如何,都重启容器;
unless-stopped 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。
!-->
docker run -d -p 8088:8088 --restart=always --name an-order:v2.0
<-- 如果项目已经启动,然后设置他的自动重启功能 !-->
docker container update --restart=always 容器id
<-- 关闭
docker stop 容器ID或容器名
-t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker kill 容器ID或容器名 :直接关闭容器
!-->
1、docker stop 容器ID或容器名
docker stop -t=60 容器ID或容器名
2、docker kill
<-- 重启!-->
docker restart 容器ID或容器名,建议使用容器ID
<-- 删除镜像前必须删除容器!-->
docker rmi 镜像ID
docker rmi `docker image -q` #删除所有的镜像
<-- 查看所有容器!-->
docker ps -a
docker ps #运行中的容器
<-- 删除所有容器!-->
docker rm $(docker ps -aq)
<-- 删除指定容器!-->
docker rm 容器ID
如果项目已经启动,然后设置他的自动重启功能
此图说明docker自启动生效,容器自启动生效。