Dokcer初见
安装
rpm方式
官方rpm包下载地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
阿里镜像下载地址: https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/
yum
由于自带版本较旧,建议使用其它源
[docker] name=doker baseurl = https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/ enabled=1 gpgcheck=0
Ubuntu参考阿里云:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.6a0b1b11zSmSRx
命令补全包: docker-compose、bash-completion
配置加速
mkdir /etc/docker vim /etc/docker/daemon.json { "registry-mirrors":["https://r4jnxp63.mirror.aliyuncs.com"] }
systemctl daemon-reload
systemctl restart docker
常用命令
镜像
#搜索 docker search [option] # docker search --filter=is-official=true NAME -f #过滤输出内容 --format string #格式化输出内容 --limit int #限制输出个数,默认25个 --no-trunc #不截断输出 #删除 docker rmi -f #强制删除 -no-prune #不清理未带标签的父镜像 #清理无用镜像 docker image prune -a #删除所有无用,不止临时 -filter #清理符合给定过滤器的镜像 -f #强制删除 #上传 docker [container] commit -a #作者信息 -c #提交时执行docker命令 -m #提交信息 -p #提交时暂停容器运行 -o 或 > #保存至本地 -i 或 < #加载本地镜像
容器
#创建 docker create -it IMAGE_NAME # 创建和运行可以一步完成 docker run IMAGE_NAME #进入容器 推荐exec docker exec -d #在容器中后台执行命令,默认前台 --detach-keys="" #指定切回后台按键 -e,--env[] #指定环境变量列表 -i,--interactive=true|false #打开标准输入接收输入指令,默认false --privileged=true|false #是否给执行命令最高权限,默认为false -t, --tty=true|false #分配伪终端 -u,--user="" #执行命令的用户名或ID
--rm #容器退出后自动删除
--restart policy #设置容器是否跟随docker服务启动
docker exec -it container_name /bin/bash #导出容器制作镜像 #导出容器 docker export -o container.tar container_name #恢复 docker import container.tar container_name docker run -it container_name /bin/bash
--restart 可以指定四种不同的policy
no :默认值为否,退出容器时不自动重启容器。
on-failure[:max-retries]:仅在容器以非零退出状态退出时重新启动。 (可选)限制Docker守护进程尝试重新启动的重试次数。
always:无论退出状态如何,始终重新启动容器。当指定时,Docker守护程序将尝试无限期重启容器。无论容器的当前状态如何,该容器还将始终在守护程序启动时启动。
unlessstopped:无论退出状态如何,始终重新启动容器,但是如果之前已将容器置于停止状态,则不会在守护程序启动时启动它。
尝试使用lamp
docker pull mattrayner/lamp docker run -it -p "80:80" -v /app:/app -v /data/mysql:/var/lib/mysql mattrayner/lamp:latest docker exec -it reverent_bouman /bin/bash vim /app/index.php <?php phpinfo(); ?>
查看结果