-------------------------------------------------------修改yum源改成 阿里云-------------------------------------------------------
1、yum install wget -y 下载wget
2、mkdir -p /etc/yum.repos.d 创建目录
3、下载阿里云yum源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4、更新缓存
yum clean all
yum makecache
-------------------------------------------------------docker三大核心概念:镜像、容器和仓库-------------------------------------------------------
镜像
镜像是docker运行容器的前提,docter运行容器前需要本地存在对应的镜像。如果镜像不存在本地,docter会尝试先从默认镜像仓库下载(默认使用docter hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库
容器
容器是镜像的一个运行实例
仓库
集中存放镜像的地方
1、安装前置条件
docker要求Linux内核要3.0以上版本,如果centos6.x 内核是2.x,需要升级linux内核
我虚拟机直接安装的是centos 7 64位 输入uname -r 查看内核
安装步骤
1)yum update 升级本地yum包
2) yum install -y yum-utils device-mapper-persistent-data lvm2 安装工具集
3)sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装阿里云docker源
4)sudo yum makecache fast 更新yum缓存
5)yum -y install docker-ce 安装docker 如果有出错 就运行 yum clean all 然后在运行这条命令
6)service docker start 启动docker服务
7)docker -v 查看docker版本
2、docker 无法下载镜像解决方法
1)创建文件目录
mkdir -p /etc/systemd/system/docker.service.d
2)创建http-proxy.conf并添加内容
vim /etc/systemd/system/docker.service.d/http-proxy.conf
HTTP_PROXY 为自己的代理上网地址
添加的内容:
[Service]
Environment="HTTP_PROXY=http://10.1.82.22:3128"
3)重新读取服务的配置文件:systemctl daemon-reload
4)重启Docker:systemctl restart docker
5)验证是否已加载配置:systemctl show --property=Environment docker
3、常用命令
镜像相关
1)docter pull NAME[:TAG] 使用pull命令从docker hub仓库下载镜像到本地
2)docker tag oldName newName 为本地镜像添加新的标签
3)docker images 列出本地主机上已有的镜像
4)docker search TERM 默认搜索docker hub官方仓库的镜像
5)docker rmi 镜像id或者镜像名称 //删除镜像
6)docker commit [OPTIONS] CONTAINER[REPOSITORY[:TAG]] 基于已有镜像的容器创建镜像,可以创建比较复杂的镜像。-a:作者信息,-m:提交信息,-p:提交时暂停容器运行
7)docker import -NAME[:TAG] 基于本地模板导入镜像
8)docker build -t NAME[:TAG] dockerfile路径 基于dockerfile创建
9)docker save –o xxx.tar NAME[:TAG] 存出镜像到本地文件
10) docker load <xxxx.tar 载入镜像
11)docker inspect 镜像id 查看镜像详细信息
容器相关
1)docker create –it NAME[:TAG] 创建容器
2)docker start NAME[:TAG] 启动容器
3)docker run –it NAME[:TAG] 等于先执行docker create命令,再执行docker start,-it交互式,守护态运行,通过run后加-d实现
4)docker stop[-t|--time[=10]] 终止容器
5)docker restart NAME[:TAG] 启动状态重新启动
6)docker ps –a –q 查看处于终止的容器id信
7)docker ps 查看正在运行的容器
8)docker ps –a 查看所有容器
9)docker rm 容器id 删除容器,需要先停止
10)docker logs 容器id 查看容器日志
11)docker port <container-name|container-id> 端口 查看容器映射端口
12)docker inspect 容器id 查看容器信息
13)docker exec -u root -it containerID /bin/bash 指定用户进入容器操作
14)env 容器内部输入env查看容器内部环境变量
15)docker cp <host_path>container-id :<container_path> 复制本地文件到容器
16)docker cp container-id:<container_path><host_path> 复制容器文件到本地
17)docker network create app_net 创建自定义网络
18)docker network connect app_net container-name连接网络
19)docker run -it -v /dbdata --name dbdata 创建数据卷容器dbdata,并在其中创建数据卷挂载到/dbdata。其他容器挂载使用--volumes-from dbdata,可以多次使
用,从多个容器挂载多个数据卷,还可以从一挂载数据卷的容器来挂载数据卷,且使用--volumes-from 参数所挂载数据卷的容器自身不需要保持运行,要删除一个数据卷
必须在删除最后一个还挂着它的容器时显示使用docker rm -v命令来指定同时删除关联的容器
-------------------------------------------------------------------修改docker的port端口映射-----------------------------------------------------------
1). 查看需要修改的容器,记住container id
docker ps -a
2). 停止容器
docker stop xxx
3). 修改容器的端口映射配置文件
vim /var/lib/docker/containers/{container_id}/hostconfig.json
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"//宿主机ip
}
]
}
4).重启docker服务
systemctl restart docker
5).启动docker服务
systemctl start docker
docker容器自动启动设置
1)开机启动docker服务
systemctl enable docker.service
2)在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
docker run --restart=always
如果已经启动了则可以使用如下命令:
docker update --restart=always <CONTAINER ID>