前置条件
64-bit 系统
kernel 3.10+
用uname -r命令检查内核版本,返回的值大于3.10即可。
sudo wget -qO- https://get.docker.com | sh命令安装docker。
用docker version命令查看docker版本
用sudo service docker start命令启动docker服务
为了方便可以将当前用户添加到docker用户组
添加docker用户组
sudo groupadd docker
将当前用户加入到docker用户组
sudo gpasswd -a ${USER} docker
重启docker服务
sudo service docker restart
运行hello-world镜像(我这里已经pull过hello-world,如果第一次运行会去pull镜像)
docker run hello-world
自己制作第一个docker镜像:
编写dockerfile
新建文件,dockerfile 注意文件无后缀名
dockerfile内容:
FROM java:8
ADD restFeign-1.0.0.jar restFeign.jar
ENTRYPOINT [“java”,"-jar",“restFeign.jar”]
新建一个文件夹,我这里新建文件夹为docker,进入docker文件夹,将dockerfile 与 restFeign-1.0.0.jar(你想要执行的jar包,我这里是spring boot的一个jar包) 上传至docker文件夹
构建镜像:
docker build -t restfeign -f dockerFile .
-t 给构建的镜像取一个名称,-f 指定构建的配置文档,注意最后还有一个点,这个点代表构建的工作目录,点代表是当前目录
启动容器:
docker run -d --name rest -p 9018:9018 --net=host c90b5e7894f0
-d 以后台进程运行
–name 为容器取名为 rest
–net 直接使用–net=host 使用宿主机网络。
-p 9018:9018 Docker 将主机的 9018 端口转发至容器的 9018 端口
c90b5e7894f0 为镜像id (可通过docker images 获取)
查看镜像:
docker images
查看容器
docker ps -a
访问部署的应用:
宿主机的ip加端口及url路径
查看日志位置
docker inspect --format=’{{.LogPath}}’ <container_name>
实时查询内容
sudo tail -f docker inspect --format='{{.LogPath}}' <container_name>
有个问题是该文件所在目录,普通登录用户是没有权限进入的,我们可以将日志从写道一个方便的位置
nohup sudo bash -c “docker logs -f <container_name> >> /var/log/<container_name>.log” &
利用数据卷更新容器内容
docker run -d --name rest -v /data/docker/volume/:/home/ --net=host a0aa034796ee