Docker安装教程&打包镜像&运行镜像&容器服务开机自启动

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自启动生效,容器自启动生效。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值