Docker安装、Dockerfile编写及其他常用命令

一、docker安装

  • CentOS 7服务器

1、更新系统软件包安装依赖

yum update
yum install yum-utils device-mapper-persistent-data lvm2

2、将Docker稳定存储库添加到至系统

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、安装最新版本的Docker CE(社区版)

yum install docker-ce

4、启动Docker守护程序并设置自启动

systemctl start docker
systemctl enable docker

5、验证Docker服务

systemctl status docker

6、验证版本

docker -v

二、万能Dockerfile

在这里插入图片描述

1、java8

FROM williamyeh/java8
ENV LANG C.UTF-8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
RUN mkdir -p /data/gps/app
RUN mkdir -p /data/logs
ADD xxxxxxxx.jar /data/gps/app/xxxxxxxx.jar
ENV JAVA_OPTS=""
ENV RUN_PARAM=""
WORKDIR /data/gps/app
ENTRYPOINT java ${JAVA_OPTS} -jar /data/gps/app/xxxxxxxx.jar ${RUN_PARAM}

2、java11

FROM lpicanco/java11-alpine:latest
ENV LANG C.UTF-8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
RUN mkdir -p /data/gps/app
RUN mkdir -p /data/logs
ADD xxxxxxxx.jar /data/gps/app/xxxxxxxx.jar
ENV JAVA_OPTS=""
ENV RUN_PARAM=""
WORKDIR /data/gps/app
ENTRYPOINT java ${JAVA_OPTS} -jar /data/gps/app/xxxxxxxx.jar ${RUN_PARAM}

或通过以下命令,选择自己喜欢的镜像:

docker search java8
docker search java11

  • 通过Dockerfile创建镜像
docker build -t="image_name:1.0.0" .

三、启动容器

1、启动命令 docker run

docker run -d --restart=always --name gps -e JAVA_OPTS='-Xms2048m -Xmx2048m' -p 10067:10067 -e  RUN_PARAM='--spring.profiles.active=prod' --network roadweanet --network-alias servernet -v /data/logs/:/data/logs gps:1.0.0

2、命令详解:

  • -v /data/logs/:/data/logs 挂载卷
    将docker容器内的日志输出至宿主机目录, 宿主机:容器。

  • -p 10097:8080 端口映射
    hostPort:containerPort,外部请求访问的端口:容器内服务端口

  • --name gps 指定容器名字

  • --network roadweanet
    指定使用的网络,通常用来解决多容器间的服务相关访问

  • --network-alias servernet 为设置网络别名

  • -d 指定后台挂起运行

  • -i -t

  • /bin/bash 开启bash客户端


四、docker常用命令

在这里插入图片描述

1、镜像篇

  • 从 docker Hub 检索镜像
docker search image_name
  • 发布镜像
docker pull 镜像名:标签    docker pull centos:latest
  • 列出本地已下载镜像
docker image ls
  • 删除镜像
docker image rm <镜像1> [<镜像2> ...]
  • 显示镜像历史
docker history image_name

2、容器篇

  • 列出所有的容器(未运行、运行ing)
docker ps -a
docker container ls -a
  • 列出当前所有正在运行的容器
docker ps
docker container ls
  • 列出最近一次启动的容器
docker ps -l
  • 删除容器(先停容器,再删容器,再删镜像)
docker rm  container_id (或容器名:版本)
  • 停止\启动容器
docker stop container_id
docker start container_id
  • 查看容器日志
docker logs <id/container_name>

docker container logs --tail="10" container_id
  • 进入docker终端里
docker exec -it container_id /bin/bash
  • 把宿主机中的文件拷贝到容器内部
docker cp /宿主机目录/文件   container_id:/目录
把容器内部的文件拷贝到宿主机中,反之亦然
  • 调起后台运行的容器
docker attach container_id
  • 解决容器内时间和宿主机时间不一致
Dockerfile中添加:
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

3、网络

  • 两个容器建立桥接网络

(1)运行如下命令创建bridge网络

docker network create testnet

(2)运行容器连接到testnet网络

docker run -it --name <容器名> ---network <bridge> --network-alias <网络别名> <镜像名>

docker run -it --name name-1 --network testnet --network-alias centos-1 docker.io/centos:latest
docker run -it --name name-2 --network testnet --network-alias centos-2 docker.io/centos:latest

(3)从一个容器ping另外一个容器
(4)若访问容器中服务,可以使用这用方式访问 <网络别名>:<服务端口号>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值