六、微服务学习笔记-docker容器

一、docker优势

沙箱,进程间隔离

1、更快的启动时间

2、一致环境

3、持续交付和部署

(1)持续集成(Continuous integration)

(2)持续部署(Continuous Delivery/Deployment)

4、更轻松的迁移

5、更轻松的维护和扩展

二、传统的开发部署

开发环境、测试环境、预发布环境(生产演练)、生产环境

三、使用APT安装

#更新数据源
apt-get update

#安装所需依赖
apt-get -y install apt-transport-https ca-certificates curl software-properties-common

#安装GPG证书(验证软件来源)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

#新增数据源
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

cd ect/apt/sources.list 查看数据源
lsb_release -a  查看变量
lsb_release -cs=codename bionic

#更新并安装
apt-get update && apt-get install -y docker-ce
#查看docker版本
docker --version

四、配置阿里镜像

一、阿里镜像加速器

二、配置daemon文件

/etc/docker/daemon.json

#daemon.json内容,直接复制运行就可以了
tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors":  ["https://XXXXXXX.mirror.aliyuncs.com"]  
}
EOF

#重启 Docker
systemctl daemon-reload
systemctl restart docker

#验证配置是否成功,查看镜像地址
docker info

三、docker常用命令

#获取软件镜像(版本号可以不填)
docker pull tomcat:版本号

#查看软件安装状态
docker images
docker images -a

#运行软件
docker run -p 宿主端口:容器端口 tomcat
守护态运行:docker run -p 8080:8080 -d tomcat
docker run -p 8080:8080 --name 容器名字 -d 镜像名字
#镜像体积
docker system df

#删除镜像(标签)
docker rmi nginx:标签

#查看运行容器
docker ps

#查看所有运行容器
docker ps -a

#停止运行容器
docker stop 容器ID

#启动容器
docker start 容器ID

#删除容器
docker rm 容器ID

#强制删除容器
docker rm -f 容器ID
#交互命令
docker exec -it 容器ID/name /bin/bash

#删除所有容器
docker container prune

#清楚所有虚悬镜像
docker image prune

#查看容器运行日志
docker logs 容器ID

#查看容器网络
docker network ls

 

 

 

 

 

镜像(类)                                          容器(对象,镜像实例)

tomcat                                    xxx 基于 tomcat 镜像

中间层镜像(不能删除)

虚悬镜像(可以删除)

宿主机端口映射到容器端口,外网才能访问到容器的端口

四、dockerfile 镜像定制

mkdir docker
mkdir myweb
vi dockerfile
vi index.jsp
docker build -t myweb .
.
1、在当前目录找到Dockerfile文件
2、指定我Dockerfile的上下文目录并打包->Docker Server

dockerfile内容:

FROM tomcat:latest

#移动文件命令
RUN mv webapps webapps2
RUN mv webapps.dist/ webapps
#执行删除命令
RUN rm -fr /usr/local/tomcat/webapps/Root

#复制到指定目录
COPY myweb.tar.gz /usr/local/tomcat/webapps/Root
#指定工作目录
WORKDIR /usr/local/tomcat/webapps/Root

#解压并删除
RUN tar -zxvf myweb.tar.gz \
&& rm -fr myweb.tar.gz

#回到tomcat目录
WORKDIR /usr/local/tomcat

#暴露端口
EXPOSE 8080

 

 注:当前目录,不能使用上一级目录,如果需要分类在当前文件夹下创建文件夹

Dockerfile文件命令:

ADD:复制解压

CMD脚本:只允许用一次,以最后一次CMD为准

CMD  ./startup.sh

ENTRYPOINT :跟CMD命令一样,只允许用一次

EVN:环境变量

EVN MYSQL_VERSION 5.7.22

EXPOSE:暴露端口

EXPOSE 8080 3306

WORKDIR:像cd,但不是

关键字:OpenStack 、c/s、守护进程

 

五、遇到问题

1、启动tomcat成功404

原因:由于原先tomcat目录下webapps是为空的,需要现将之前的webapps删除,将webapps.dist重命名为webapps即可解决。

命令如下:

#容器交互命令
docker exec -it 容器ID /bin/bash

#删除webapps目录
rm -rf webapps

#重命名webapps.dist目录
mv webapps.dist/ webapps

参考文章:https://blog.csdn.net/qq_40891009/article/details/103898876

2、打包项目镜像,启动镜像时出现404界面

原因:还是使用了tomcat镜像,镜像需要修改webapps目录

解决办法:通过将dockerfile文件中移动webapps.dist文件到webapps目录中

posted @ 2020-08-06 12:22  榕树下的回忆  阅读(147)  评论(0编辑  收藏  举报