Docker入门
docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
集装箱化的优点:
- 灵活:即使是复杂的应用程序也可封装。
- 轻量级:容器利用并共享主机内核。
- 便携式:您可以在本地构建,部署到云上并在任何地方运行。
- 可扩展性:您可以增加和自动分发容器副本。
- 可堆叠:您可以垂直堆叠服务并及时并及时堆叠服务。
基本操作
- 安装docker
yum install docker
- 启动/停止docker
systemctl start/stop docker
- 查看docker版本号
docker -v
- 开机启动docker
systemctl enable docker
- 搜索镜像文件(mysql)
docker search mysql
.--no-trunc显示完整的镜像信息
.-s 30收藏数不小于30
.--automated只列出automated build类型信息
从docker hub仓库中搜索
INDEX
:索引值
NAME
:镜像名称
DESCRIPTION
:镜像描述
STARS
:关注人数(千为单位)
OFFICIAL
:是否是官方提供
AUTOMATED
:是否是自动配置
-
下载镜像(mysql):版本号,默认latest(最新版本)
docker pull mysql
docker pull mysql:5.5
-
查看所有镜像
docker images
REPOSITORY
:镜像名称
TAG
:标签
IMAGE ID
:镜像ID
CREATED
:创建时间
SIZE
:大小 -
删除镜像
docker rmi -f 镜像ID/镜像名称 -f 强制删除(可省略)
容器操作
-
新建并启动容器
–name:自定义容器名
docker run --name mytomcat
-d:后台运行(镜像名称:版本),不加版本默认运行最新版本
docker run --name mytomcat -d tomcat:3.0
-v:文件地址映射(文件不存在新建)
docker run --name mytomcat -v /data/tomcat:/data -d tomcat
-p:端口映射(主机端口映射到容器,主机端口:容器端口))
docker run -it --name mytomcat -d tomcat -p 8888:8080
-
进入正在运行的容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器分配一个伪输入终端,通常与-i同时使用
bash:以bash终端方式进入
docker exec -it 容器ID bash
-
查看正在运行的容器
-a:列出所有容器
-l:显示最近创建的容器
-n 3:显示最近创建3个容器
-q:静默模式,只显示容器编号
–no-trunc:不截断输出
docker ps -a --no-trunc
-
查看所有容器
docker ps -a
-
停止容器(运行容器ID通过docker ps查看)
docker stop 运行容器ID
-
启动容器(运行容器ID通过docker ps查看)
docker start 运行容器ID
-
删除指定容器
docker rm 容器ID
-
容器日志
-t:加入时间戳
-f:跟随最新日志打印
–tail 5: 显示最后5条
docker logs -t -f --tail 5 容器ID
-
查看容器细节
docker inspect 容器ID
-
查看容器ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id或名称
-
从容器内复制文件到主机上
docker容器里面文件路径,复制到docker外目的路径
docker cp 容器ID:/data/um.log /root
-
从主机复制文件到容器内
docker cp 文件路径 容器ID或名称:容器内路径
DockerFile
名字为:Dcokerfile
以FROM开头
FROM
:基础镜像,当前镜像来自哪个镜像MAINTAINER
:镜像维护者的姓名和邮箱地址RUN
:容器构建时需要运行的命令
RUN yum -y install vim
EXPOSE
:当前镜像对外暴露的端口WORKDIR
:容器创建后,终端默认登陆进来的目录ENV
:用来构建镜像过程中设置环境变量
ENV MY_PATH /usr/data :MY_PATH的值是/usr/data
COPY
:将宿主机目录下的文件复制到镜像ADD
:将宿主机目录下的文件复制到镜像,且自动处理URL和解压tarVOLUME
:容器数据卷,用于数据保存和持久化
VOLUME ["/data1","/data2"]:有两个文件文件映射地址
CMD
:指定一个容器启动时需要运行的命令,只有最后一个生效,会被docker run 之后的参数替换
CMD /bin/bash:以bash终端启动
ENTRYPOINT
:和CMD一样,命令以追加执行,不会被替换
docker build -f dockerfile路径 -t 自定义容器名 .
docker build -f /usr/local/dockerfile -t tomcat .