docker入门笔记
docker简介
简介
一种相较于虚拟机更加轻量的虚拟技术
安装
- windows安装要求
win7/8必须需要通过docker toolbox来安装,win10专业版(企业版、教育版)只需安装Docker for windows - docker engine(centos)
yum install -y yum-utils
# 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 修改源信息
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 刷新缓存
yum makecache [fast] # centos 8 没有fast参数
yum -y install docker-ce
docker-machine安装(deprecated)
- docker-machine是用来简化docker安装的cli,目前已经基本兼容主流的虚拟机和云服务器
- 当docker-machine在本地使用时,实际上其作用就是虚拟机管理工具(类似vagrant),
不过其管理的虚拟机有指定的镜像,比如,使用的驱动是virtualbox时,则指定的镜像为boot2docker,该镜像是一个轻量级的ubuntu系统
- 执行原理
- 即用一个轻量级的linux(boot2docker)镜像创建一台主机,该主机已经包含了docker的守护进程和docker客户端。
- 常用命令(其中虚拟主机就是docker的宿主机)
docker-machine ip 获得虚拟主机的IPdocker-machine ssh 通过ssh连接到虚拟主机(实际上,使用ssh docker@虚拟主机的ip 密码**tcuser**同样可以连接到虚拟主机中,比如使用外部数据库客户端就是使用此方法连接)docker-machine start/stop/restart 相当于对虚拟主机进行关机/开机/重启操作docker-machine status 查看虚拟主机的状态docker-machine create/rm 创建和删除虚拟主机
添加镜像加速器
-
创建虚拟主机时添加,docker-machine create --engine-registry-mirror=<your accelerate address> -d virtualbox default -
已有的虚拟主机中添加,首先通过docker-machine ssh <machine-name>登录虚拟机
然后修改/var/lib/boot2docker/profile文件,将--registry-mirror=<your accelerate address>添加到EXTRA_ARGS中,最后sudo /etc/init.d/docker restart重启Docker服务就可以了 -
网易蜂巢 (不需要注册) -
ghostcloud (需要注册)
常用命令(客户端)
- docker help 命令
attach # 当前 shell 下 attach 连接指定运行镜像
build # 通过 Dockerfile 定制镜像
commit # 提交当前容器为新的镜像
cp # 从容器中拷贝指定文件或者目录到宿主机中
create # 创建一个新的容器,同 run,但不启动容器
diff # 查看 docker 容器变化
events # 从 docker 服务获取容器实时事件
exec # 在已存在的容器上运行命令
export # 导出容器的内容流作为一个 tar 归档文件[对应 import ]
history # 展示一个镜像形成历史
images # 列出系统当前镜像
import # 从tar包中的内容创建一个新的文件系统映像[对应 export]
info # 显示系统相关信息
inspect # 查看容器详细信息
kill # kill 指定 docker 容器
load # 从一个 tar 包中加载一个镜像[对应 save]
login # 注册或者登陆一个 docker 源服务器
logout # 从当前 Docker registry 退出
logs # 输出当前容器日志信息
port # 查看映射端口对应的容器内部源端口
pause # 暂停容器
ps # 列出容器列表
pull # 从docker镜像源服务器拉取指定镜像或者库镜像
push # 推送指定镜像或者库镜像至docker源服务器
restart # 重启运行的容器
rm # 移除一个或者多个容器[在运行中的容器无法删除或使用-f强制删除]
rmi # 移除一或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run # 创建一个新的容器并运行一个命令
save # 保存一个镜像为一个 tar 包[对应 load]
search # 在 docker hub 中搜索镜像
start # 启动容器
stop # 停止容器
tag # 给源中镜像打标签
top # 查看容器中运行的进程信息
unpause # 取消暂停容器
version # 查看 docker 版本号
wait # 截取容器停止时的退出状态值
运行 'docker COMMAND --help' 查看更多的命令
启动docker服务
- 启动
systemctl start docker - 停止
systemctl stop docker - 重启
systemctl restart docker
常用命令(客户端)详细介绍
docker tag # 给自己的私有仓库推送时必须先给自己的镜像打上tagdocker push #将镜像推送至自己的仓库中docker run [options] 镜像 [COMMAND]-i #创建交互式容器-h #指定容器主机名-d #使容器后台运行-e #指定环境变量-t #创建容器时打开terminal-rm #若容器存在,则移除它-p <本地主机端口>:<容器端口> #指定容器端口映射-P #随机端口映射-v <本地主机路径>:<容器路径>(可以指定多个,是一个数组) #给容器添加数据卷--name <容器名> #给容器取名--entrypoint COMMAND #容器运行时的命令会覆盖Dockerfile中entrypoint指定的命令--volumes-from <容器名> #使用指定容器的数据卷--network <已创建的网络名称> #连接到指定的网络--restart=always# 允许自动重启--link 容器名:别名 #给连接的容器取一个别名,当容器重启时ip会发生改变,而使用别名可避免该问题
Example
docker run --name db -e MYSQL_ROOT_PASSWORD=example --restart=always -v /my/custom:/etc/mysql/conf.d --network mysql -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password