-
安装docker
-
添加yum源
# yum install epel-release –y # yum clean all # yum list
-
安装并运行Docker
# yum install docker-io –y # systemctl start docker
-
查看安装结果
# docker info
-
docker守护进程管理
# systemctl start docker #运行Docker守护进程 # systemctl stop docker #停止Docker守护进程 # systemctl restart docker #重启Docker守护进程
-
-
基本概念
- 镜像: Docker images容器运行时的只读模板,操作系统+软件运行环境+用户程序,类似于java中的class
- 容器:Docker containers,容器包含了某个应用运行所需要的全部环境,类似于java中的对象
-
常用命令
-
查看docker版本信息: docker -v
-
查看docker运行状态: sudo service docker status
-
搜索镜像: docker search rabbitmq:management
-
列出当前系统已安装的镜像: docker images
-
删除镜像: docker rmi -f 镜像id
-
拉取镜像: docker pull rabbitmq:management(先从本地获取,没有的话去远程镜像仓库拉取)
-
运行一个容器: docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:management
- -d 后台运行
- -p 端口映射
- –name “容器名称”
- rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
-
创建容器–交互式容器(创建运行的时候会进到容器里面):
docker run -it --name=容器名称 镜像名称 /bin/bash
-
创建容器–守护式容器():
docker run -di --name=容器名称 镜像名称
-
将文件从宿主机拷贝到容器中
docker cp 111.txt myredis2:/usr/local
-
将文件从容器中拷贝到宿主机:
docker cp myredis2:/etc/111.txt /data
-
进入守护式容器的命令
docker exec -it myredis2 /bin/bash
-
退出容器: exit
-
查看当前运行的容器: docker ps
-
查看所有的容器: docker ps -a
-
查看容器内部信息: docker inspect 9187fe1853f9(id或者name)
-
停止某个容器: docker stop 容器名称
-
启动某个容器: docker start 容器名称
-
移除某个容器: docker rm 容器名称(容器必须是停止状态)
-
-
docker部署Nginx
-
拉取镜像: docker pull nginx
-
运行容器:
docker run -d --name "nginx" -p 8088:80 nginx
-
-
docker安装mysql
-
拉取镜像: docker pull centos/mysql-57-centos7
-
运行容器:
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
-
-
docker安装redis
-
拉取镜像: docker pull redis
-
运行容器:
docker run -di --name=redis -p 6379:6379 redis --requirepass "123456"
-
在docker中使用redis
docker exec -it bf9b9d256da5 redis-cli
-
-
docker安装tomcat
-
拉取镜像: docker pull tomcat:7-jre7
-
运行容器
docker run -di --name=tomcat -p 8080:8080 tomcat:7-jre7
-
将war包复制到tomcat容器webapps下:
docker cp 111.war tomcat:/usr/local/tomcat/webapps
-
-
docker安装rabbitmq
-
拉取镜像: docker pull rabbitmq:management
-
运行容器:
docker run -d --name="rabbitmq" -p 5672:5672 -p 15672:15672 rabbitmq:management
-
-
私有镜像仓库:用于存放公司内部的镜像,不提供给外部使用
-
私有镜像仓库的搭建:
-
私有镜像仓库使用
-
登录私有镜像仓库
docker login --username=康世伟的云主机 registry.cn-hangzhou.aliyuncs.com
-
设置本地镜像tag
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/swkang/swkang:[镜像版本号] docker tag df6f26ea3e53 registry.cn-hangzhou.aliyuncs.com/swkang/swkang:swkang_rabbitmq
-
推送本地镜像到私有镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/swkang/swkang:swkang_rabbitmq
-
从私有镜像仓库中拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/swkang/swkang:swkang_rabbitmq
-
-
springboot项目构建docker镜像
-
在项目的pom.xml添加如下的配置
<properties> <docker.image.prefix>swkang</docker.image.prefix> </properties> <build> <finalName>springboot-docker-demo</finalName> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
-
在项目的根目录下面创建Dockerfile.txt文件
FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
-
FROM : 需要一个基础镜像,可以是公共的或者是私有的, 后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令
-
VOLUME 配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
-
ARG 设置编译镜像时加入的参数, ENV 是设置容器的环境变量
-
COPY : 只支持将本地文件复制到容器 ,还有个ADD更强大但复杂点
-
ENTRYPOINT 容器启动时执行的命令
-
EXPOSE 8080 暴露镜像端口
-
-
构建镜像
-
mvn install dockerfile:build(此处如果是windows电脑,需要安装docker for windows,并且在settings
->general 下面勾选 Expose deamon on tcp://localhost:2375 without TLS,否则不能构建成功)
-
跳过测试: mvn install -Dmaven.test.skip= dockerfile:build
-
-
将本地镜像推送到远程镜像仓库
-
从远程镜像仓库拉取推送的镜像到目标服务器,并运行该镜像,返回的容器id
-
通过上面的容器id,查看容器的日志
docker logs -f faece63109ec4852bd25e14daba9eb66a73fb84f12bd3d36aa32a85ed783c072
-
-
模拟登陆
curl "http://asdasd.com"
docker学习
最新推荐文章于 2024-04-16 02:01:15 发布