docker 随笔 1-简单使用

本文介绍了Docker的基础操作,包括查看Docker版本、列出镜像、拉取和删除镜像、构建及更新镜像、查看镜像历史、运行和管理容器,以及网络配置等。通过Dockerfile可以定制化镜像,而docker命令行工具则提供了丰富的管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 想要写会代码

# docker 版本
docker version

# 返回docker客户端的所有命令提示选项
docker

# 提示docker stats这一命令的各种选项
docker stats --help

1. 镜像

# 已安装的镜像
# 可安装的镜像建议通过docker hub查看
docker images

# 拉取镜像
# 版本号缺省时,默认拉取最新版本
docker pull <镜像名称>:<版本号>

# 移除本机上的镜像
docker rmi 镜像仓库name/id

# 更新本机上的镜像
# 提交镜像的更新到一个新的容器
docker commit -m="xxx" -a="zzz" 容器id 创建的镜像name:tag
-m 注释
-a 作者

# 构建镜像
# Dockerfile文件:.表示当前目录下的Dockerfile
docker build -t 构建后的镜像名 Dockerfile文件
-t 指定构建后的镜像名称

# 给镜像添加一个新的标签
docker tag 镜像id 镜像name:tag

# 可以查看镜像的历史操作记录(镜像pull后的一些动作,image layers)
# 具体的dockerfile可以在docker hub中查看(dockerfile一般不会打包,因为只用于构建镜像)
docker history imageId

1.1 dockerfile构建镜像

说白了就是:在一个镜像基础上,通过shell做一些事情

runoob教程
nignx的dockerfile解析


举个🌰:
这里我在最小安装的ubuntu镜像之上,引入国内源,并安装ping+ifconfig

FROM ubuntu:15.10

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \
	&& touch /etc/apt/sources.list \
	&& echo "deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
	&& echo "deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list \
	&& apt-get update \
	&& apt install -y iputils-ping=3:20121221-5ubuntu2 \
	&& apt install -y net-tools=1.60-26ubuntu1

2. 容器

# 运行中的容器id name 执行的命令 创建时间 运行状态 端口号映射
docker ps
-a 所有容器(运行+停止的)

# 删除容器
docker rm -f 容器id
-f force

# 查询指定容器的元信息(内部配置)
docker inspect 容器name/id

# 启动一个停止的容器
docker start 容器id

# 停止一个正在启动的容器
docker stop 容器id

# 重启一个已经启动了的容器
docker restart 容器id

# 创建一个新容器并启动它
# /bin/bash 这里我们希望有个交互式 Shell,因此用的是 /bin/bash,同bash
docker run -itd --name containerName image [/bin/bash]
-i 交互操作
-t 终端
-d 后台启动(不会直接进入容器)
--name 容器别名
--link 将指定ip写到/etc/hosts(动态ip没用,不能使用容器名动态访问,并且还只是单向的)

# 创建时指定 端口映射
docker run -d -P traning/webapp python app.py
-P 将容器内部使用的吨端口映射到宿主机的端口上(Docker默认开放5000端口)
docker run -d -p 5000:5000 traning/webapp python app.py
-p 手工指定docker映射宿主机的端口号

# 进入容器终端(推荐)
# 使用exit退出终端时,不会停止容器
docker exec
docker exec -it docker容器id /bin/bash

# 进入容器终端
# 使用exit退出终端时,会顺带停止容器
docker attach

# 查询指定容器的资源占用情况
docker stats 容器name/id

# 查询指定容器(运行中)的进程情况
docker top 容器name/id

# 导出 导入容器
# 也可通过URL导入远程文件
docker export 容器id > 导出文件
docker import 导入文件 导入后的镜像名:tag
	# 容器导入后将作为镜像存储
	# 丢弃所有的历史记录和元数据,仅导入快照状态
	docker load:载入完整记录,体积较大

3. 网络

# 已配置的网络
docker network ls

# 自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 networkName
-d 指定网络类型(--driver)
--subnet 子网
--gateway
--ip 指定静态ip(必须指定subnet)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肯尼思布赖恩埃德蒙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值