注意:主要参考来源
https://www.runoob.com/docker/docker-tutorial.html
一Docker的基础介绍
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,容器是完全使用沙箱机制,容器性能开销极低
分析:docker的内存使用基本是里面部署的应用内存使用。主要便于应用隔离,发布,复制
安装docker之后,实际上部署项目的步骤不改变(该怎么上传war包就怎么上传),改变的是启动关闭的命令
根据Dockerfile文件创建多个容器
二Docker的安装部署
Docker 支持以下的 64 位 CentOS 版本:
CentOS 7
CentOS 8
更高版本...
查看本地是否安装
docker –version
卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
$ yum list docker-ce --showduplicates | sort -r |
2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动 Docker。
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
Docker 镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com
------------------------------
请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
------------------------------
之后重新启动服务:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
------------------------------
三Docker的基本使用
1.通过修改dockerfile文件生成镜像(可以多个)
docker build -t docker1:v1 .
docker build -t docker2 .
-------------------------------
docker:docker命令。
build:编译。
-t:镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag,参考docker build命令详解。
Docker1:生成镜像的名称。
v1:生成镜像的版本号。
.:点符号“.”表示的意思是,指定镜像构建过程中的上下文环境的目录
------------------------------
2.运行容器,并把容器的8080端口映射到宿主机器的8090端口上
docker run -d -p 8090:8080 docker1:v1
docker run -d -p 8090:8080 docker2
docker run -d --name tomcat1 -p 8081:8080 docker1:v1
docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
------------------------------
使用docker stop $CONTAINER_ID来终止一个运行中的容器
docker ps # 查看真正运行的容器
docker start xxx(容器id)
docker attach xxx(进入容器) 使用这种方法,退出容器后容器会停止运行
docker exec -it xxx/bin/bash 这种方式进入容器,退出容器会正常运行
------------------------------
四Dockerfile文件例子
FROM centos MAINTAINER abc ADD ./apache-tomcat-7.0.88.tar.gz /root ADD ./jdk-7u80-linux-x64.tar.gz /root ENV JAVA_HOME /root/jdk1.7.0_80 ENV PATH $JAVA_HOME/bin:$PATH ENTRYPOINT /root/apache-tomcat-7.0.88/bin/startup.sh && tail -F /root/apache-tomcat-7.0.88/logs/catalina.out |
FROM命令,用法,FROM <image>:<tag>,FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的
ENV命令,用法,ENV <key> <value>,ENV命令主要用于设置容器运行时的环境变量
ADD命令,用法,ADD <src> <dest>,ADD主要用于将宿主机中的文件添加到镜像中