Docker学习
-
docker是什么
docker是一个开源的容器引擎,docker可以将应用程序和基础设施层隔离,并且能将基础设施当做程序一样进行管理.
让开发者可以打包自己的应用以及依赖包到一个可移植的容器中,然后发布到其他的linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制的,相互之间不会有任何接口.我觉得
docker就是一个快速安装应用环境,引用程序的工具.相当好用
-
docker优点
1.简化程序
2.处理你的选择恐惧症
3.节约开支
我觉得简化程序相当好用,其他没什么感觉,选择恐惧症该有还有..就是安装环境相对快乐了.想换就换,向安装什么就安装什么..
docker架构
- 基本组成部分
-
注册中心 Redgistry
集中存储于分发镜像的服务, -
守护进程 daemon
运行在宿主机的后台进程,可以通过docker客户端与之通信 -
客户端 client
客户端是docker的用户界面,它可以接受用户命令和配置标识,并且与docker daemon通信 -
镜像 images
镜像是一个只读的模板,它包含创建docker容器的说明 -
容器 container
容器是镜像的可运行实例
-
注册中心 Redgistry
linux安装docker
- 1.安装所需要的依赖安装包
- 安装命令
yum install -y yum-utils device-mapper-persistent-data lvm2
- 安装命令
- 2. 修改yum源,并更新yum包索引
- 命令
yum-config-mapper --add-repo [http://mirrors.aliyun.com/docker-ce/centos/docker-ce.repo](http://mirrors.aliyun.com/docker-ce/centos/docker-ce.repo)yum makecache fast
- 命令
- 3.查看yum仓库中docker版本,并选择特定版本进行安装
- 命令
yum list docker-ce --showduplicates | sort -r
- 命令
- 4.安装docker
- 命令
安装特定版本的dockeryum -y install docker-ce-18.03.1.ce
安装最新稳定版本dockeryum -y install docker-ce
- 命令
- 5.启动docker
- 命令
systemctl daemon-reloadsystemctl start docker
- 命令
- 6.将docker加入到开机启动
- 命令
systemctl enable docekr
- 命令
- 7.验证docker是否安装正常
- 命令
docker version
- 如果正常显示了Client和Server的相关信息则表示安装正常
- 命令
docker镜像相关命令
- 1 搜索镜像
* docker search 关键字
* 例如
* docker search java
* 显示列表内容为
* - NAME:镜像仓库名称。
* - DESCRIPTION:镜像仓库描述。
* - STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0
* - OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。
* - AUTOMATED:表示是否是自动构建的镜像仓库。
* 设置镜像加速器地址
* 位置在cd /etc/docker
* 查看有没有 daemon.json。这是docker默认的配置文件。如果没有新建,如果有,则修改。
* 重启docker服务
* systemctl daemon-reload
* systemctl restart docker
参考链接
https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror
- 2 下载镜像
* docker pull 镜像名:版本名
* 例如
* docker pull java:8
- 3 列出镜像
* docker images
* 可以列出当前docker中已经下载的所有镜像信息
* 显示内容含义
* - REPOSITORY:镜像所属仓库名称。
* - TAG:镜像标签。默认是 latest,表示最新。
* - IMAGE ID:镜像 ID,表示镜像唯一标识。
* - CREATED:镜像创建时间。
* - SIZE: 镜像大小。
- 4 删除本地镜像
- docker rmi 镜像名
- 5 删除所有镜像
* docker rmi $(docker images -q)
docker容器相关命令
- 新建并启动容器
docker run 命令
命令常用选项
-d 表示后台运行
-P 随机端口映射
-p 指定端口映射
格式包括
-- ip:hostPort:containerPort
-- ip::containerPort
-- hostPort:containerPort
-- containerPort
--net 指定网络模式
可选参数
--net=bridge
默认选项
表示连接到默认的网桥
--net=host
容器使用宿主机的网络
--net=container:Name-or-ID
告诉Docker让新建的容器使用已有容器的网络配置
--net=none
不配置该容器的网络,用户可以自定义网络配置
示例
docker run -d -p 91:80 nginx
- 列出容器
docker ps
列出当前正在运行的容器
docker ps -a
列出所有的容器,包括已经停止的容器
显示容器的列名意义
- CONTAINER_ID:表示容器 ID。
- IMAGE:表示镜像名称。
- COMMAND:表示启动容器时运行的命令。
- CREATED:表示容器的创建时间。
- STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。
- PORTS:表示容器对外的端口号。
- NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的--name选项自行指定。
3 停止容器
docker stop 容器id
docker stop 容器名
4 强制停止容器
docker kill 容器id
5 启动已经停止的容器
docker start 容器名称
docker start 容器id
6 查看容器的所有信息
docker inspect 容器id
7 查看容器的日志
docker container logs 容器id
8 查看容器里面的进程
docker top 容器id
9 容器与宿主机相互复制文件
从容器拷贝文件到宿主机
docker cp 容器id:要拷贝的文件在容器里面的路径 宿主机的相应路径
从宿主机拷贝文件到容器里
docker cp 宿主机文件路径 容器id:要拷贝到容器的对应路径
10 进入容器内部
docker exec -it 容器id /bin/bash
有些则是使用 /bin/sh
11 容器内部安装vim,ping,ifconfig等命令
apt-get update
apt-get install vim
apt-get install iputils-ping
apt-get install net-tools
12 删除容器
docker rm 容器id
只能删除已经停止的容器
docker rm -f 容器id
可以删除正在运行的容器
docker rm -rf $(docker ps -a -q)
删除所有的容器
13 查看容器对应的ip
docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)
docker inspect 容器名/容器ID | grep IPAddress
容器命令参考学习地址
docker容器命令大全
网友评论