docker 二进制安装
docker 的二进制安装软件安装包
http://170.101.103.6/1_%C8%ED%BC%FE/4_%B7%FE%CE%F1%C6%F7/6-docker/
docker 二进制安装
1. 解压 docker_install.zip
2. 解压tar xzvf docker-17.09.1-ce.tgz
3. 拷贝二进制文件sudo cp docker/* /usr/bin/
4. 拷贝serivce配置文件sudo cp docker.service /usr/lib/systemd/system
5. 起停docker的相关命令
systemctl enable docker 开机自动启动
systemctl start docker 启动docker
systemctl stop docker 停止docker
systemctl status docker 查看docker 的运行状态
systemctl stop firewalld.service 关闭防火墙 如果运行报错的画
docker-compose 安装
下载 docker-compose.zip 将其安装到 环境变量就可执行 或者 放到 /use/local/bin/ 下面
chmod 755 docker-compose 增加可执行权限
yum 安装centos7 docker
编辑yum源
1.使用阿里的yum源
cd /etc/yum.repos.d
tar zcvf all.tar.gz * - 备份所有 repo 文件
wget http://170.101.103.6/9_yuan/repo/centos-7.repo --下载repo文件
yum clean all
yum makecache --建立缓存
配置 外网yum 源代理
修改 vim /etc/yum.conf 在最下面添加
proxy=http://172.18.199.5:3128
就可以在不上外网的情况下单独使用外网 访问yum源了
安装最新docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
--如果下载不了,那么就只能从其他linux服务器手动复制了。
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 $ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker $ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
docker 的一些配置
1.配置docker 加速器 和外网代理
1.docker 本身使用的源是在国外的可能比较慢。可以设置阿里云自己的代理
2.登录 阿里云 使用支付宝登录申请帐号(这里使用我申请的帐号)
https://dev.aliyun.com/search.html
3. 如何使用Docker加速器
针对Docker客户端版本大于1.10的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://tslei8p0.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
其他配置
1.运行时家目录修改
{
"graph": "/home/docker/docker_root"
}
1.1 修改仓库镜像
{
"insecure-registries": ["www.harbor.com","170.130.103.87"]
}
2.docker 外网拉取镜像(走代理服务器)
centos7和centos6有区别,这里只介绍centos7的做法:
- 新建文件夹/etc/systemd/system/docker.service.d
- 新建文件https_proxy.conf 增加内容
[Service]
Environment="HTTPS_PROXY=http://172.18.199.5:3128"
- 重启docker
3.修改docker 默认监听的端口(让其他客户端的机器可以访问)
vi /usr/lib/systemd/system/docker.service
修改如下
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
docker images
- docker images ls ##列出所有镜像
- docker images ls -a ##列出所有镜像
1.镜像
1.docker 下载与删除镜像
1>docker search 查询镜像文件
2>docker pull name[:TAG] 从仓库中下载指定的镜像
eg.
docker pull centos 下载 最新的centos镜像
3>docker images 查看本机镜像信息
4> docker inspect 镜像id 查看该镜像的详细信息
5> docker rmi 镜像id/镜像名称 删除镜像
2.创建镜像与导出镜像
1> 基于已有容器创建镜像
docker commit
-a --author 作者的信息
-m --message 提交的信息
-p --pause=true 提交时暂停容器的运行
eg. 196e0ce0c9fb
2> docker save -o centos.tar.gz centos 导出镜像
3> docker load --input centos.tar.gz 导入镜像
4> docker tag 镜像id 仓库:标签 重命名镜像标签
docker container
容器是镜像的一个运行实例
1.例子
1>docker run -it --rm ubuntu:16.04 bash
- -it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入
bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
- --rm :这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容
器并不会立即删除,除非手动 docker rm 。我们这里只是随便执行个命令,看看结果,
不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
- ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。
- bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash
*进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 cat
/etc/os-release ,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器
内是 Ubuntu 16.04.4 LTS 系统。
最后我们通过 exit 退出了这个容器*
1> docker create -it centos:lastest 创建容器
2> docker run centos /bin/echo 'hello world' 运行容器
3> docker run -ti centos /bin/bash
开启一个 bash终端 允许用户进行交互
exit 或者 ctrl+d 来退出容器
docker run --name=wangzhen -t -i ubuntu
建立一个名字为wangzhen 的容器
docker run -tdi 进入后台运行
docker attach 进入容器
docker start [-i] 容器名 重新运行 已经停止的容器
4> docker rm 删除处于终止状态的容器
-f 强制终止并删除一个运行中的容器
-l 删除容器的连接 ,当保留容器
-v 删除容器挂载的数据卷
5> 导入与导出容器
docker ps 查看当前正在运行的容器
docker ps -a 查看所有的容器
查看容器id
docker export id> test_for_run.tar 导出容器
car test_for_run.tar|docker import - test/ubuntu:v1.0 导入容器