1.Docker 安装
- 环境 centos7
- yum包更新
- sudo yum update
- 安装yum-util和devicemapper驱动依赖
- sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源
- sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker
- sudo yum install docker-ce
- 检查版本
- docker -v
2.设置ustc的镜像
ustc的linux镜像服务提供者,ustc的docker镜像加速器速度很快, 不需要注册,是真正的公共服务
link: https://lug.ustc.edu.cn/wiki/mirrors/help/docker
step:
vi /etc/docker/daemon.json
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}
3.docker 启动与关闭
systemctl start docker
systemctl status docker
systemctl stop docker
systemctl restart docker
systemctl enable docker(auto start docker when service start up)
4.docker常用命令
docker info
docker --help
- 镜像相关
- docker images ( docker image installed on my docker)
- docker search
- docker search centos
- docker pull
- docker rmi [id] (delete image)
- 容器相关
- docker ps/ docker ps -a (search running container)
-
docker run -p 6379:6379 -d redis:latest redis-server(cnblogs.com/zhzhlong/p/9465670.html)
- docker run -di -p 6379:6379 -d redis:latest redis-server (guard type)
- docker stop [name]/[id]
- docker start [name]/[id]
- docker cp anaconda-ks.cfg mycentos:/user/local (copy file to docker path)
- docker cp mycentos:/user/local anaconda-ks.cfg(copy file from docker path)
- docker inspect [container name]/[id] (search container detail)
- docker inspect --format=`{{[infomation path]}}` [container name]
- docker rm [name] (delete container]
- 目录挂载
- docker run -di -v [file]:[file on docker path] --name=[dockername] [docker app:version]
5.应用部署
Mysql
1. docker pull centos/mysql-57-centos7
2. create docker container
docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-e代表添加环境变量,表示root用户的登录密码
3.进入mysql 容器
docker exec -it tensquare_mysql /bin/bash
4.登录mysql
mysql -u root -p
6.迁移与备份
- 保存为镜像
- docker commit [name] [images name]
- 镜像备份
- 保存为tar文件
- docker save -o [name].jar [name]
- 保存为tar文件
- 镜像恢复与迁移(i=input)
- docker load -i [name].jar
7.Dockerfile
Dockerfile是由一系列命令和参数构建的脚本
命令 | 作用 |
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key valu | 设置环境变量(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
RUN command | dockerfile的核心部分,可以写多条 |
8.docker 私有仓库构建
- docker pull registry
- docker run -di --name=registry -p 5000:5000 registry
- ip:5000/v2/_catalog查看
- 修改daemon.json
- vi /etc/docker/daemon.json
- 将仓库地址添加到这个json文件
- {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":[ip:port]}- systemctl restart docker
- 标记新镜像为私有仓库的镜像
- docker tag jdk1.8 [ip]:[port]/jdk1.8
- 上传标记的镜像
- docker push [ip]:[port]/jdk1.8