docker的初体验
目录一 、docker概述1、docker是什么2、docker与虚拟机的区别3、docker是使用场景二、docker的核心概念以及安装方式1、docker核心概念2、centos安装docker的两种方式三、安装docker及基本操作1、安装最新版本docker依赖版本环境2、安装docker并设置为开机自启动并检查docker版本3、配置路由分发4、配置阿里云的镜像加速器5、搜索镜像6、获取
一 、docker概述
1、docker是什么
- docker是一种轻量级的“虚拟机”
- 在Linux容器里运行应用的开源工具
2、docker与虚拟机的区别
3、docker是使用场景
- 打包应用程序简单化部署
- 可脱离底层硬件任意迁移
- 例如:服务器从腾讯云迁移到阿里云
二、docker的核心概念以及安装方式
1、docker核心概念
- 镜像
- 一个面向docker容器引擎的只读模板
- 容器
- 从镜像创建的运行实例
- 仓库
- 集中保存镜像的地方
2、centos安装docker的两种方式
- 使用CURL获得docker的安装脚本进行安装
- 使用YUM仓库来安装docker(推荐使用)
三、安装docker及基本操作
1、安装最新版本docker依赖版本环境
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装docker并设置为开机自启动并检查docker版本
yum -y install docker-ce
systemctl start docker
systemctl enable docker
docker version
3、配置路由分发
vim /etc/syscl.conf
net.ipv4.ip_forward=1
sysctl -p
4、配置阿里云的镜像加速器
这里配置镜像加速器的原因是因为docker的官网是国外的,所以下载的时候会出现中断或者下载速度很慢的,因此我们需要使用阿里云的镜像加速
手机扫码直接登录
登陆后选择控制台
systemctl daemon-reload
systemctl restart docker
这样就可以获得阿里云的镜像加速了
四、docker基本命令
搜索镜像
docker search 镜像名
获取镜像
docker pull 仓库名称[:标签]
查看镜像
docker images 仓库名称[:标签]
docker inspect 镜像ID
删除镜像
docker rmi 镜像名
将镜像存储在本地,以及载入镜像
cd /opt
docker save -o mysql mysql:latest
docker load < mysql
或
docker --input mysql
添加镜像标签
docker tag 原镜像名:标签 新镜像名:标签
删除镜像
docker rmi 镜像名[:tag]
创建私有仓库
docker run registry
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.241.20:5000"], ##添加
"registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com]
}
systemctl restart docker.service
docker create -it registry /bin/bash
docker ps -a
容器创建及查看
docker create -it nginx:latest /bin/bash
docker ps -a
这里提示下:STATUS状态 up是正在运行的,Exited (0)是正常停止的容器、Exited (非0)异常停止的容器
启动容器
docker start 容器id
启动容器并执行命令
docker run centos7 /bin/bash -c ls
持续在后台执行
docker run -d centos7 /bin/bash -c “while true;do echo hello;done”
进入容器
docker exec -it 容器名 /bin/bash
容器导入和导出
容器导出:dockerexport 容器id >名称
容器导入:cat 名称 | docker import -容器名称:[tag]
删除容器及批量删除
docker rm 容器id
docker ps -a | awk ‘{print "docker rm "$1}’| bash
私有仓库的镜像上传及下载
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
更改标记为192.168.241.20:5000/nginx
docker tag nginx:latest 192.168.241.20:5000/nginx
上传
docker push 192.168.241.20:5000/nginx
获取私有仓库列表
curl-XGET http://192.168.241.20:5000/v2/_catalog
显示
("“repositories”:["“nginx”")
这样就标识上传镜像至私有仓库就成功了
测试私有仓库下载
docker pull 192.168.241.20:5000/nginx
数据卷
docker pull centos:7
宿主机目录/opt/test挂载容器种的/data1
docker run -v /opt/test:/data1 --name test1 -it centos:7 /bin/bash
cd /data1
touch test1
返回宿主机查看
ls /opt/test
这里的挂载目录如果不存在的话,会自动创建
数据卷容器
#数据卷容器
docker run --name web10-v /data1 -v /data2 -it centos:7 /bin/bash
#新容器挂载数据卷容器web10
docker run -it --volumes-from web10 --name db1 centos:7 /bin/bash
数据卷与数据卷容器的区别:数据卷是挂载在宿主机上的,而数据卷容器是通过--volumes-from实现容器与容器之间的挂载
端口映射
docker run -d -P httpd
docker run -d -p 1234:80 httpd
-P:是随机指定端口
-p:是指定端口
容器互联
docker run -itd -P --name web11 centos:7 /bin/bash #创建并运行容器取名web11,端口号自动映射
docker run -itd -P --name web22 --link web11:web00 centos:7 /bin/bash
创建并运行容器取名web22,链接到web11和其通信进web22容器 ping web11
–link name:alias
这里有想过为什么可以ping通web11??
这里因为web11的地址映射到了web22的/etc/hosts里,所以这里才可以ping通
更多推荐
所有评论(0)