docker的基本使用

docker的基本使用

1、CentOS Docker 安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2.docker基本命令使用

镜像是一个打包好的文件
容器是在主机系统上实例化并运行的镜像

1、获取镜像
docker pull 镜像名
2、启动容器
docker run -it 镜像名 /bin/bash
-i: 交互式操作。
-t: 终端。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
3、退出终端
exit
4、查看所有容器
docker ps -a
5、启动已经停止的容器 
docker start 容器ID
docker restart 不推荐使用;不涉及文件系统的操作,restart命令并不是stop与start两个命令的顺序叠加
6、docker 后台运行模式
docker run -itd -name 容器别名 容器名 /bin/bash
7、停止容器
docker stop 容器ID
8、进入容器
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
docker exec -it 容器ID /bin/bash
9、导出容器
docker export 容器id > 容器名
10、导入容器
docker import 容器路径

3、docker 容器高级命令使用

1、运行web应用
docker run -d -P 镜像名 python app.py
-d:让容器在后台运行。
-P(大写):将容器内部使用的网络端口随机映射到我们使用的主机上。
python app.py 运行web应用
docker run -d -p 5000:5000 镜像名 python app.py
-p(小写) 是将内部端口与外部端口映射 内部端口:外部端口
2、查看web应用程序的日志
docker logs -f 容器ID
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
3、查看web应用程序容器的进程
docker top 进程名
4、检查web应用程序
docker inspect 进程名
5、停止 WEB 应用容器
docker stop 进程名
6、重启WEB应用容器
docker start 进程名

4、docker 镜像命令使用

1、查看镜像列表
docker images
2、查找镜像
docker search

5、DockerFile 格式

Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

# 为了指定基本映像,第一条指令必须是FROM
FROM nginx

# 多个RUN可以用 && 连在一起减少 docker的层数,这样只会创建一层
RUN <命令行命令> && <命令行命令>

# 复制指令,从上下文目录中复制文件或者目录到容器里指定路径
COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
# [--chown=<user>:<group>]:可选参数,用户改变复制到容器内文件的拥有者和属组。
# <源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则
# <目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建

# CMD 在docker run 时运行
# 如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效
# 为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖
CMD ["<可执行文件或命令>","<param1>","<param2>",...]

# 在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数
# 如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]

# 设置环境变量,定义了环境变量,那么在后续的指令中
ENV <key1>=<value1> <key2>=<value2>...

# 构建参数
ARG <参数名>[=<默认值>]

#定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷
VOLUME ["<路径1>", "<路径2>"...]

# 声明端口
EXPOSE <端口1> [<端口2>...]

# 指定工作目录
WORKDIR <工作目录路径>

# 用于指定执行后续命令的用户和用户组
USER <用户名>[:<用户组>]

# 用于指定某个程序或者指令来监控 docker 容器服务的运行状态
HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令
# HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令

ENTRYPOINT 和 CMD 使用案例
假设已通过 Dockerfile 构建了 nginx:test 镜像:

FROM nginx

ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参 

1、不传参运行

$ docker run  nginx:test
容器内会默认运行以下命令,启动主进程。
nginx -c /etc/nginx/nginx.conf

2、传参运行

$ docker run  nginx:test -c /etc/nginx/new.conf
容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)
nginx -c /etc/nginx/new.conf

6、docker创建镜像

# 在DockerFile当前路径下执行
docker build -t 镜像名:镜像标签 .
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曾晶的总结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值