欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker入门使用教程

程序员文章站 2022-03-04 14:33:15
...

1. 安装/升级Docker客户端

对于10.10.3以下的用户 推荐使用Docker Toolbox

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/

对于10.10.3以上的用户 推荐使用Docker for Mac

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/

2. 配置镜像加速器

针对安装了Docker Toolbox的用户,您可以参考以下配置步骤:

创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=https://7nehluel.mirror.aliyuncs.com -d virtualbox default

查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machine env defaulteval "$(docker-machine env default)"docker info

针对安装了Docker for Mac的用户,您可以参考以下配置步骤:

在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件。将

https://7nehluel.mirror.aliyuncs.com加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。

3. Docker基本操作命令

拉取镜像:docker pull centos

拉取并运行镜像:docker run hello-world

查看所有的镜像:docker images

查看正在运行的容器:docker ps

查看正在运行或退出的容器: docker ps -a

删除镜像:docker rmi hello-world

删除容器:docker rm 2be4d0f44088

查看docker所有运行或退出容器的ID:docker ps -qa

删除所有运行的容器:docker rm $(docker ps -qa)

用终端绑定容器(防止直接被docker引擎杀死):docker run -it centos

进入容器:docker exec -it 2be4d0f44088 /bin/bash

退出容器:exit

停止容器:docker stop 2be4d0f44088

杀死容器:docker kill 2be4d0f44088

从宿主机拷贝文件到容器:docker cp ./a.txt: 2be4d0f44088:/

docker run命令具体参数(docker run -it ...)

给容器添加主机名到ip的映射关系:--add-host server1:192.168.223.141 centos

给容器指定名字: --name mycentos centos

本地端口映射到容器端口:-p 5000:5000

4. 数据卷:实现数据持久化

实质上就是数据映射

docker run -it -v /mydatas:/container/datas centos(宿主机目录:容器目录)

-v 容器中看到的文件就是宿主机上的文件

数据卷的价值:容器被删除后,数据不会被删除

使用数据卷实现MySQL的持久化:

-v /mysql/datas:/var/lib/mysql

5. Dockerfile

是镜像的描述文件

基本命令:

FROM:我们构建的镜像是基于哪个镜像来的

MAINTAINER:定义作者

ADD:拷贝文件并解压

COPY:拷贝

RUN:运行shell命令

ENV:定义环境变量

CMD:在启动容器的时候,执行的命令

WORKDIR:进入到容器之后的落脚点

EXPOSE:容器对外暴露的端口

ENTRYPOINT:在启动容器的时候,执行的命令

1. 基本Example:

FROM centos:latest
MAINTAINER rokey
COPY ./a.txt /
CMD ["/bin/bash/"]

构建一个自己的镜像

docker build -t mycentos:v1.0 .

2. ADD\COPY\ENV\RUN

FROM centos:latest
MAINTAINER rokey
COPY ./jdk-8u60-linux-x64.tar.gz /
RUN tar -zxf /jdk-8u60-linux-x64.tar.gz
ENV JAVA_HOME=jdk1.8.0_60
ENV PATH=$JAVA_HOME/bin:$PATH
CMD ["/bin/bash/"]

等效(ADD自动sh)

FROM centos:latest
MAINTAINER rokey
ADD ./jdk-8u60-linux-x64.tar.gz ./
ENV JAVA_HOME=jdk1.8.0_60
ENV PATH=$JAVA_HOME/bin:$PATH
CMD ["/bin/bash/"]

3. WORKDIR 

FROM centos:latest
MAINTAINER rokey
WORKDIR /datas/
ADD ./jdk-8u60-linux-x64.tar.gz ./
ENV JAVA_HOME=jdk1.8.0_60
ENV PATH=$JAVA_HOME/bin:$PATH
CMD ["/bin/bash/"]

4. EXPOSE 

FROM centos:latest
MAINTAINER rokey
WORKDIR /datas/
ADD ./jdk-8u60-linux-x64.tar.gz ./
ENV JAVA_HOME=jdk1.8.0_60
ENV PATH=$JAVA_HOME/bin:$PATH
ADD ./apache-tomcat-8.5.57.tar.gz ./
EXPOSE 8080
CMD ["./apache-tomcat-8.5.57/bin/catalina.sh", "run"]

5. ENTRYPOINT

1)CMD的指令会追加到ENTRYPOINT之后,但是多个CMD和ENTRYPOINT都只执行最后一个。

2)启动时增加的参数也可以追加到ENTRYPOINT后 

6. 使用Dockerfile来构建SpringBoot镜像

FROM centos:latest
MAINTAINER rokey
WORKDIR /datas/
ADD ./jdk-8u60-linux-x64.tar.gz ./
ENV JAVA_HOME=/datas/jdk1.8.0_60
ENV PATH=$JAVA_HOME/bin:$PATH
COPY ./springboot-1.0-SNAPSHOT.jar ./boot.jar
EXPOSE 8080
CMD ["java", "-jar", "boot.jar"]

相关标签: docker