Docker教程
BKivdvfg3A(csyFLMUoMF8%5($U1IWcp
一.安装Docker
有内核版本要求 大于等于3.10 以Centos7为例
文章图片
image.png 1.1 移除旧的版本:
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
文章图片
image.png 1.2 安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.3 添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4 更新 yum 缓存:
sudo yum makecache fast
1.5 安装 Docker-ce:
sudo yum -y install docker-ce
1.6 启动 Docker 后台服务
sudo systemctl start docker
文章图片
image.png
【Docker教程】)
文章图片
image.png 二.Docker基本命令
2.1 查看所有运行中镜像
docker ps
2.2 查看指定镜像输出
docker logs [id | name]
2.3 停止指定镜像
docker stop [id | name]
2.4 加载指定镜像
docker run
2.5 更多命令请查看命令帮助
docker --help
docker --help
三.Dockerfile语法
Dockerfile可以分为四部分
- 基础镜像信息
- 创建者信息
- 镜像操作指令
- 启动执行指令
//FROM [:]基于指定镜像创建
FROM openjdk
3.2 创建者信息
MAINTAINER baojizhong指定创建者信息
3.3 镜像操作指令 3.3.1 两种格式
- exec格式 ["sh","-c","echo","world"] 以下写作["command"]
- shell格式 sh -c echo world 以下写作
下面的命令大部分都同时支持这两种格式
3.3.2 USER命令
USER命令可以指定启动容器时的用户 默认是root
USER deamon// 指定用户为daemon
通常需要首先建立用户 使用RUN命令
3.3.3 RUN命令
RUN命令可以执行任何基础镜像支持的命令
RUN
RUN ["command"]
// 建立用户
RUN useradd lavi2510
RUN echo "lavi2510:0DayYouK" | chpasswd
3.3.4 CMD命令
CMD命令是在容器启动时执行的命令 只有最后一条生效 且会被docker run命令中的参数覆盖
CMD
CMD ["command"]
// 多条CMD只有最后一条生效
CMD echo "hello"
CMD echo "world"
3.3.5 ENTRYPOINT命令
ENTRYPOINT命令是在容器启动时的命令,只有最后一条生效,不会被docker run命令中的参数覆盖 而是会将run命令或CMD ["command"]中的参数接在ENTRYPOINT命令后作为ENTRYPOINT命令的参数
ENTRYPOINT
ENTRYPOINT ["command"]
// 多条ENTRYPOINT只有最后一条生效
// run命令和CMD ["command"]都会为ENTRYPOINT命令提供参数 如下
CMD ["test"]
ENTRYPOINT echo
// 启动时实际执行为echo test
3.3.6 EXPOSE命令
EXPOSE命令可以指定要暴露的端口
EXPOSE [ ...]
EXPOSE 8081 8082需要暴露8081,8082端口
3.3.7 ENV命令
ENV命令可以指定环境变量,可以被RUN指令获取,在容器运行时存在
ENV
ENV JAVA_HOME /usr/local/java
3.3.8 ADD命令
ADD命令可以将指定的目录或文件(也可以是一个URL)拷贝到容器的指定目录下 如果是tar.gz会自动解压
ADD
ADD docker-0.0.1.jar /home/lavi2510/lavi.jar
3.3.9 COPY命令
COPY命令相较于ADD命令,只能从本地拷贝,并且不会解压。如果以本地文件为目标,推荐使用COPY
COPY
COPY docker-0.0.1.jar /home/lavi2510/lavi.jar
3.3.10 VOLUME命令
VOLUME命令会创建一个匿名VOLUME,将容器中的目录和host machine的某个目录绑定
VOLUME /lavi// 将容器中的/lavi目录绑定于host machine的某个目录
VOLUME my-volume:/lavi// 将容器中的/lavi目录与my-volume对应的目录绑定
3.3.11 WORKDIR命令
WORKDIR命令可以指定工作目录
WORKDIR /path/to/workdir
四.启动一个SpringBoot项目
dockerfile
FROM openjdk
MAINTAINER baojizhong
ENV JAVA_HOME /usr/local/java
ADD proxy-service-kafka-1.0.0.jar /home/proxy.jar
WORKDIR /home
EXPOSE 8000
ENTRYPOINT ["java","-jar","/home/proxy.jar"]
将dockerfile和proxy-service-kafka-1.0.0.jar放在同一目录下
编译镜像
docker build -t proxy/kafka .
创建镜像
docker run -p 0.0.0.0:8000:8000 --name proxyproxy/kafka --spring.profiles.active=dev --registry.host=10.90.101.43 --registry.port=8000 --proxy.type=producer
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 用npm发布一个包的教程并编写一个vue的插件发布
- 20180322【w4复盘日志】
- docker镜像探索----dive工具
- 狗狗定点大小便视频教程下载地址
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)
- 【实用教程】4种获取无水印视频素材的方法
- 【糯米糖藕】教程