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

Docker 安装以及常用命令

程序员文章站 2024-03-13 15:33:57
...

一、Docker安装

1、Docker安装
参考教程https://blog.csdn.net/u010889616/article/details/80170767

二、Docker常用命令

2、查看所有运行中的容器

docker ps

3、查询所有容器 

docker ps -a

4、根据名称查询镜像

docker search imageName

5、查询star大于30的镜像

docker search -s 30 imageName

6、查询所有运行中容器id(注:“-qa”查询所有容器id)

docker ps -q

7、关闭、停止容器(1:根据id停止正在运行的容器id;2、根据容器名停止容器)

docker stop $(docker ps -q)
docker stop containerName

8、进入正在运行的容器进行交互操作

docker exec -it containerName /bin/bash

9、查看相应容器日志信息

docker logs -f -t containerName

10、容器重命名

docker rename oldContainerName newContainerName

11、根据镜像id删除此镜像

docker rmi imageId(镜像id)

12、运行容器

docker start containerName

13、下载镜像

docker pull imageName

14、docker实现文件挂载(例如:Nginx将本地nginx.conf挂载到服务容器(路径:/etc/nginx/)内,如果挂载多个文件可以使用多个 "-v"直接进行添加即可,如果要挂载文件需要先在当前路径($PWD/)下准备相应的nginx.conf文件)

docker run -d -p8083:80 --name nginx -v $PWD/nginx.conf:/etc/nginx/nginx.conf:ro nginx

15、挂载多个文件(例如:Tomcat实现配置、日志挂载)

docker run --name tomcat_t -d -p40001:8080 -v $PWD/conf:/usr/local/tomcat/conf -v $PWD/webapps/:/usr/local/tomcat/webapps/ -v $PWD/logs/:/usr/local/tomcat/logs/ tomcat

16、查看容器详情(所有相关信息包含挂载信息)

docker inspect containerName

三、Dockerfile常用指令

FROM:基础镜像,当前镜像基于那个镜像的
 
MAINTAINER:镜像维护者的姓名和邮箱地址
 
RUN: 执行过程中需要执行的linux命令

WORKDIR:指定容器后,终端默认登陆的进来工作目录,一个落脚点

ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

COPY:类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径位置>  1、COPY src dest   2、COPY ["src","dest"]

VOLUME: 通过 VOLUME 指令创建的挂载点,本地可修改 直接生效,多个容器可以共用实现同步效果 (执行Dockerfile文件后直接生成文件路径,实现本地数据进行挂载)

ENV:定义环境变量的同时,可以引用已经定义的环境变量

EXPOSE:告诉 Docker 服务端容器暴露的端口号,供互联系统使用

CMD:命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换

ENTRYPOINT:指定启动容器时执行的命令, ENTRYPOINT的目的和CMD一样,指定容器启动程序及参数 命令附加不覆盖

ONBUILD: 当构建一个被继承的Dockfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

ENV:用来构建镜像过程中设置环境变量

四、根据Dockerfile实现自定义Tomcat容器并配置jdk1.8环境(Dockerfile文件内容如下)

FROM ubuntu18
# 定义作者
MAINTAINER whl <[email protected]>
# 添加jdk1.8文件并进行解压操作
ADD jdk-8u191-linux-x64.tar.gz /usr/local/
# 添加tomcat9文件并进行解压操作
ADD apache-tomcat-9.0.14.tar.gz /usr/local/
# 安装 vim
RUN apt-get install -y vim
# 配置jdk环境变量
ENV JDKPATH /usr/local/jdk1.8.0_191
# 配置tomcat环境变量
ENV TOMCATPATH /usr/local/apache-tomcat-9.0.14
# 设置工作空间路径
WORKDIR /usr/local/
# 复制文件到容器内
COPY readMe.txt /usr/local/shiku/readMe.txt
# 设置环境变量
ENV JAVA_HOME $JDKPATH
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME $TOMCATPATH
ENV CATALINA_BASE $TOMCATPATH
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# 设置端口号
EXPOSE 8089
# 启动tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.14/bin/startup.sh"]
# CMD ["/usr/local/apache-tomcat-9.0.14/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.14/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.14/logs/catalina.out

1、运行Dockerfile文件(imageName:生成的镜像名字;0.1:当前镜像的版本号;“.”:表示当前路径下的Dockerfile文件)

docker build -t imageName:0.1 .

五、将自定义的镜像提交至阿里云

$ sudo docker login --username=阿里云账号 registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/whl_docker/redis:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/whl_docker/redis:[镜像版本号]