docker的学习
文章目录
docker概述
- docker在打包时将程序运行的环境进行打包
- docker的基本概念,使用沙箱机制,使得容器之间完全隔离,不用担心因为环境不同造成的运行错误,
- CE与EE的提供的功能基本相同,EE提供了一些额外的功能,在学习过程中使用CE版本即可
docker安装步骤
- 更新yum源
yum -y update
yum -y update 升级所有包同时也升级软件和系统内核;
yum -y upgrade 只升级所有包,不升级软件和系统内核
- 卸载之前的旧版本
yum remove docker docker-common docker-selinux docker-engine
- 安装需要的软件包,yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
- 查看docker的可用版本
yum list docker-ce --showduplicates | sort -r
- 选择一个docker的版本安装
yum -y install docker-ce-18.03.1.ce
yum -y install docker-ce(不选择版本)
- 启动docker
systemctl start docker
systemctl enable docker 设置开机自启
- 查看docker版本
docker -v
docker 的架构
配置镜像加速器
docker服务相关的命令
- 启动docker
systemctl start docker
- 重启docker
systemctl restart docker
- 停止docker
systemctl stop docker
- 开机自启动docker
systemctl enable docker
- 查看docker的状态
systemctl status docker
docker的镜像命令
- 搜索
- OFFICIAL属性是否是官方的镜像
docker容器相关命令
- 练习
- 创建一个centos的镜像,名字是c1
- 两种方式创建,-it,-id
- -it创建后直接进入容器的内部,当退出时,容器停止运行
docker run -id --name=c1 centos
- -id创建后不进入容器的内部,退出容器内部时,容器不停止运行
docker run -id --name=c1 centos
- 进入容器
docker exec -it c1 /bin/bash
docker的数据卷
数据卷的概念
数据卷容器
- 挂载数据卷
docker run -id --name=c1 -v /data:/data_container centos
- 使用docker inspect 容器名字,可以查看挂载的目录
docker应用部署
docker部署mysql
- 拉取mysql镜像
- 创建mysql容器
docker run -it -d --name=mysql \
-p 3306:3306\
-v /root/mysql/data:/var/lib/mysql \
-v /root/logs:/logs\
-v /root/mysql/config:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456
mysql:版本号
部署tomcat容器
-
拉取镜像
-
创建容器
docker run -id --name=tomcat -p 8080:8080 -v /root/tomcat/webapp:/usr/local/tomcat/webapps tomcat
部署nginx
- 拉取镜像
- 创建一个测试的nginx容器
docker run --rm --name nginx-test -p 8080:80 -d nginx
358354f206fdbc5c20199a307392c11972b1bedab306144e5af56995edbb3e4b
-rm参数,容器停止运行之后自动删除
- 创建挂载目录
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
- 复制测试的nginx容器中的配置文件
docker cp 358354f206fd:/etc/nginx/nginx.conf /root/nginx/conf/
- 部署nginx
docker run -id -p 8082:80 --name nginx \
-v /root/nginx/www:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx \
nginx
redis的部署
docker run -id --name=redis -p 6379:6379 redis
docker镜像原理
编写dockerfile部署springboot项目
- dockerfile文件
FROM java:8
MAINTAINER lmx
ADD dockerfile-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar
- 构建镜像
docker build -f dockerfile -t app .
- dockfile文件
FROM centos:7
MAINTaINER lmx <2943713364@qq.com>
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
docker服务编排
docker的安装
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
如果上述命令慢,则用
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
- 查看是否安装成功
docker-compose --version
docker 服务器与虚拟机的比较