拉取(下载)镜像:docker pull tomcat(默认最新版本),如果需要其他版本可在中央仓库中查阅
# 拉取镜像:docker pull [镜像名称]docker pull tomcat
# 默认拉取的是最新版本,如果需要特定版本,在后面指定即可,以tomcat7.0.1为例
docker pull tomcat:7.0.1
查看已经下载的本地镜像:
# 查看已经下载的本地镜像docker images
删除本地镜像
# 删除本地镜像: docker rmi 镜像名称/IMAGE IDdocker rmi tomcat
容器的基本操作
根据镜像启动对应的容器
# 根据镜像启动对应的容器docker run -d --name mytomcat tomcat
# --name 对容器起一个别名
# -d 对指定的容器进行后台运行
停止运行的容器
# 停止运行的容器:docker stop 容器名称/CONTAINER IDdocker stop mytomcat
查看正在运行的容器
docker ps # 查看正在运行的容器docker ps -a # 查看本地所有的容器
删除容器
# 注:删除容器是使用rm,删除镜像是rmi,且删除镜像之前需要停止运行容器并删除docker rm mytomcat
启动一个做了端口映射的容器,在之前创建容器之后,我们无法通过ip:端口的形式来访问Docker中所开启的服务,因为每一个容器他都是独立,所以要想访问,我们则需要通过端口的映射来访问容器。
docker run -d --name mytomcat -p 8888:8080 tomcat# --name:对容器起一个别名
# -p:将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
# -d:后台运行
查看容器的日志docker logs mytomcat
容器开机自起动:
docker update mytomcat --restart=always进入对应的容器
docker exec -it mytomcat /bin/bash本地文件(是centos不是windows)与docker容器中文件之间的互传,以将ik分词器插件上传至elasticsearch容器为例:
# 先将windows上的文件使用xftp上传到vmware linux中,然后将文件使用docker命令上传到docker容器中# docker cp 本地路径 容器名:容器路径
docker cp ./elasticsearch-analysis-ik-6.5.4.zip elasticsearch:/usr/share/elasticsearch/plugins
文件的挂载
Docker容器是独立,且其相当于是一个及其精简版的Linux,在我们通过exec命令之后,我们是无法使用vim、vi等命令来对其内部文件进行编辑,在一般情况下我们在创建好容器之后一般会对其配置文件进行编辑,此时我们可以使用Docker中的挂载来将容器内文件挂载到宿主机中。当我们在宿主机中对挂载的文件进行编辑的时候,容器中所被挂载的文件也会做出相应的修改,下面就是docker挂载文件的-v操作(以挂载Es的配置文件和数据文件为例):
mkdir -p ./resources/elasticsearch/configmkdir -p ./resources/elasticsearch/data
docker run --name elasticsearch -p 9200:9200 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-v /resources/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /resources/elasticsearch/data:/usr/share/elasticsearch/data -d elasticsearch:5.6.8
镜像、容器的导入和导出
export:可将docker容器通过export导出为tar文件
docker export mytomcat > mytomcat.tarimport:基于tar文件来创建一个新的镜像
docker import - mytomcat < mytomcat.tar注:以上指示Docker容器中常用的一些命令,对于不同的镜像的使用,其启动命令也是会有所区别,后面的一些命令会在使用的时候进行介绍,其他更多Docker操作可参考Docker官方文档:
https://docs.docker.com/engine/reference/commandline/docker/