赞
踩
先安装
- yum -y install gcc
- yum -y install gcc-c++
- yum install -y yum-utils
设置镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker ce
yum -y install docker-ce docker-ce-cli containerd.io
启动docke 查看docker状态 关闭docker
- systemctl start docker
- systemctl status docker
- systemctl stop docker
查询docker是否安装成功
docker version
配置阿里云镜像加速器 方便拉取镜像开
- mkdir -p /etc/docker
- tee /etc/docker/daemon.json <<-'EOF'
- {
- "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"]
- }
- EOF
重启
- systemctl daemon-reload
- systemctl restart docker
1.仓库命令
- #拉取镜像
- docker pull 镜像名
- #查询镜像
- docker search 镜像名
-
- #查询仓库有多少镜像
- docker images
- #删除仓库里的镜像
- docker rmi 镜像名
- # 占用系统存储
- docker system df
2.镜像命令
- docker run -it 容器 /bin/bash
- 退出 exit 停止容器退出 ctrl+q+p 后台运行退出
-
- 注意 Docker容器后台运行,就必须有一个前台进程.
- 像 nginx mysql 都有前台进程 而 ubuntu等系统没有前台进程
-
- 后台启动命令
- docker run -d 容器
-
- 进入容器
- docker exec -it 容器 /bin/bash
- 删除容器
- docker rm 容器
- 强制删除容器
- docker rm -f 容器
- 关闭容器
- docket stop 容器
- 打开已关闭的容器
- docker start 容器
-
2.1. 查询 docker 容器日志
docker logs 容器
2.2.查询容器进程
docker top 容器
2.3.查询运行时容器站cpu 内存等信息
- docker stats 容器
-
- 一下参数
- CONTAINER ID 与 NAME: 容器 ID 与名称。
-
- CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。
-
- MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。
-
- NET I/O: 容器通过其网络接口发送和接收的数据量。
-
- BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。
-
- PIDs: 容器创建的进程或线程数。
2.4查询 容器内部详情
docker inspect 容器
2.5.获取容器中的数据
docker cp 容器id:容器内地址 本机地址
3. 把容器打包成镜像 (docker镜像)
docker export 容器id>xxx.tar
3.1把xxx.tar包解析成容器
cat xxx.tar | docker import - 容器名:版本号
3.2 运行解析号的容器
- 复制COMMAND 在docker ps 可以看到
-
- 如果 COMMAND 较长 就执行 复制
- docker ps -a --no-trunc|grep
-
- docker run -d ... 容器 复制的 COMMAND
4. docker每个容器就是一个迷你版的Linux 如果想增强容器就增强Linux一样,可以把容器转变成镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
发布到阿里云上取,可让别人使用你的docker容器,或打包成 tar包给别人
请登入阿里云 搜索 容器镜像服务对经行推送获取
5.构建本地镜像仓
- docker pull registry
- #运行容器 挂载容器卷
- docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/--privileged=true registry
- #打包成registry需要的格式的形式
- docker tag 镜像 本机地址:5000/镜像名:版本号
-
- #推送 拉取
- docker push 本机地址:5000/镜像名:版本号
- docker pull 本机地址:5000/镜像名:版本号
-
- 查询仓库 内有多少仓库
-
- curl -XGET 本机地址:5000/v2/_catalog
6. docker 容器数据卷,本质就是把容器中的数据持久化到Linux中
- docker run -it --privileged=true -v /tmp/text/:/tmp/text ubuntu
-
- --privileged=true 表示让容器内的root拥有本机的root权限 最好都加上
- -v /宿主机绝对路径目录:/容器内目录
-
- 容器挂载的目录是可读可写的
- 指定只能读
- docker run -it --privileged=true -v /tmp/text/:/tmp/text:or ubuntu
-
- 继承已有的容器卷,可继承它挂载的容器目录经行同步
- docker run -it --privileged=true --volumes-from 容器id 容器名
7.安装mysql
-
- docker run -d -p 3306:3306 --privileged=true -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
-
- docker run 在本地找不到 会自动 pull
- -d 后台运行
- -p linux端口哈:容器内部mysql端口
- -v 挂载的是目录 他会自动创建
- -v /mydata/mysql/log:/var/log/mysql 挂载的是mysql日志记录
- -v /mydata/mysql/data:/var/lib/mysql 是数据目录
- -v /mydata/mysql/conf:/etc/mysql/conf.d 是配置文件目录
- -e MYSQL_ROOT_PASSWORD=123456 指定root登入密码
-
- 注意需要在配置文件创建my.cnf 配置utf8
- [client]
- default_character_set=utf8
- [mysqld]
- collation_server = utf8_general_ci
- character_set_server = utf8
-
-
-
7.1 安装redis
- 先在/mydata/redis/创建redis.conf 配置文件 因为-v 默认创建的是目录
- 修改配置文件中
- 注释 bind 127.0.0.1
- 修改 daemonize yes 改成 no
- docker run -p 6379:6379 --name redis --privileged=true -v /mydata/redis/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data -d redis redis-server /etc/redis/redis.conf
8.dockerfile 它是构建docker镜像的文件 是由一条条构建镜像所需的指令和参数构成的脚本。
8.1它的解析过程 就想一个容器 commit n次 得到一个最终的镜像
8.2 常用保留字
- FROM 基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from
- MAINTAINER 作者
- RUN 在构建镜像时运行,shell 格式 RUN yum install mysql
- EXPOSE 端口号
- WORKDIR 进入容器之后的地址
- USER 指定该镜像以什么样的用户去执行,如果都不指定,默认是root
- ENV 用来在构建镜像过程中设置环境变量
- ADD 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
- COPY 类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置 COPY ["src", "dest"]
- VOLUME 容器数据卷,用于数据保存和持久化工作
- CMD 指定容器启动后的要干的事情 会被run 后的参数替换
- ENTRYPOINT 和CMD一样 但不会被run 后的参数替换
8.1 dockerFile 编写springboot项目
- # 基础镜像使用java
- FROM java:8
- # 作者
- MAINTAINER liu
- # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
- VOLUME /tmp
- # 将jar包添加到容器中并更名为zzyy_docker.jar
- ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar
- # 运行jar包 touch命令的作用是修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容
- RUN bash -c 'touch /zzyy_docker.jar'
- ENTRYPOINT ["java","-jar","/zzyy_docker.jar"]
- #暴露6001端口作为微服务
- EXPOSE 6000
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。