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:[镜像版本号]
上一篇: Java 杂记
下一篇: Python日常学习杂记