初识Docker
Docker概念
安装Docker
# 官网地址
https://docs.docker.com/engine/install/centos/
卸载旧版
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换成阿里yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
问题:设置yum源时,网络不可达
解决方法,替换成阿里镜像地址。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
继续安装
Docker架构
配置镜像加速器
Docker命令
服务相关命令
# 启动docker服务
systemctl start docker
# 查看docker服务状态
systemctl status docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
# 设置开机启动docker服务
systemctl enable docker
镜像相关命令
# 查看本地所有镜像
docker images
# 查看所用镜像的id
docker images -q
# 搜索镜像:从网络中查找需要的镜像
docker search redis
# 拉取镜像
docker pull redis
docker pull redis:5.0
# 删除镜像
docker rmi redis:latest
# 删除本地所有镜像
docker rmi `docker images -q`
容器相关命令
前台运行容器
docker pull centos:7
docker images
docker run -it --name=c1 centos:7 /bin/bash
exit
docker ps -a
-it创建的容器的特点:
1:创建完成后直接进入容器
2:exit后退出容器
后台运行容器
docker run -id --name=c2 centos:7 /bin/bash
# 进入容器
docker exec -it c2 /bin/bash
exit
docker ps -a
启动、停止、删除、查看容器
docker stop c2
docker ps -a
docker start c2
docker rm c1
docker ps -aq
docker rm `docker ps -aq`
docker inspect c2
Docker容器数据卷
数据卷概念
配置数据卷(-v)
1)容器中创建的数据会同步到宿主机
# 将宿主机的/root/data 挂载到虚拟机的/root/data_container目录下
docker run -it --name c1 -v /root/data:/root/data_container centos:7 /bin/bash
# 查看详情
docker inspect c1
2)容器删掉后宿主机的数据不会被删掉
3)挂载后,宿主机中的数据会同步到容器中
4)挂载多个目录
docker run -it --name c1 -v /root/data:/root/data_container centos:7 /bin/bash
docker run -it --name c1 -v ~/data:/root/data_container centos:7
docker run -it --name=c2 \
-v ~/data2:/root/data2 \
-v ~/data3:/root/data3 \
centos:7
5)两容器挂载到一个宿主机目录的情况
配置数据卷容器(–volumes-from)
docker run -it --name=c3 -v /volume centos:7
docker inspect c3
# 创建c1,挂载c3的容器卷
docker run -it --name=c1 --volumes-from c3 centos:7
小结
DockerFile
Docker镜像原理
容器转为镜像
# 将容器打包成镜像
docker commit eb7ae6dcded3 my_nginx:1.0
# 将镜像保存成本地文件
docker save -o my_nginx.tar my_nginx:1.0
# 将文件还原成镜像
docker load -i my_nginx.tar
注:挂载的容器目录打包成镜像,文件不会打包到镜像中,只有容器中创建的文件才能打包到镜像中。
dockerfile概述