Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。
Docker的三大核心概念:镜像、容器、仓库
镜像:类似虚拟机的镜像、用俗话说就是安装文件。
容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,
可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。
仓库:类似代码仓库,是Docker集中存放镜像文件的场所。
1.首先检查内核版本
uname -r
2.首先更新yum
yum -y update
3.yum -y install docker-io
CentOS 6.9中运行yum -y install Docker-io时报错:
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
No package Docker-io available.
错误:无须任何处理
原因:yum没有找到docker包。
解决方法:更新epel第三方软件库,运行命令:sudo yum install epel-release
yum -y install docker-io
5.检查docker版本
docker version
6.更改配置文件
[root@localhost sirius]# vi /etc/sysconfig/docker
在文本编辑器中将other-args的内容更改为以下内容:
other_args="--exec-driver=lxc --selinux-enabled"
7.启动docker
service docker start
9.查看基本信息
docker version:查看docker的版本号,包括客户端详情、服务端详情、依赖的Go等信息;
docker info :查看系统(docker)基本信息,包括管理的images, containers数等;
docker images:查看系统中所有镜像;
docker ps :查看所有当前正在运行的container;
10.使用阿里镜像加速
首先去官网申请加速链接:https://3uq5t8hw.mirror.aliyuncs.com
进入/etc/docker
touch daemon.json
{
"registry-mirrors": ["https://3uq5t8hw.mirror.aliyuncs.com"]
}
service docker restart
=========================================================================
Docker的使用
=========================================================================
1.docker镜像所在索引
https://hub.docker.com/
2.搜索可用的镜像
docker searchtutorial
3.下载容器镜像
docker pull learn/tutorial
4.镜像容器中运行程序
docker run learn/tutorial echo "hello word"
5.镜像容器中安装新程序
docker run learn/tutorial apt-get install -y ping
由于容器中无法响应交互所以加-y
6.保存容器修改
首先查看刚刚的容器iddocker ps -l
docker commit ee42 learn/ping
选取id前三个字母即可区分,保存为learning/ping
7.用新的容器来运行ping指令
docker run lean/ping ping www.baidu.com
旧的容器learn/tutorial没有安装ping是不会ping通的
8.检查新运行的容器的详情
docker inspect (id前三位即可)
9.提交自己的镜像到docker hub
docker push fenglixiong/myrepository
docker常用操作:
docker run : 启动容器,后跟参数
-d:后台运行
-P:随机端口映射
-p:指定端口映射
- ip:hostPort:containerPort
-ip:containerPort
-hostPort:containerPort
-containerPort
--network:网络模式
--network=bridge:链接到默认网络
--network=host:主机网络
--network=none
docker pull java:下载java镜像
docker images : 列出所有已经下载镜像
docker rmi dd34 : 删除指定的id的镜像
docker rmi -f $(docker images):删除所有镜像
docker ps:列出运行中的容器
container_id:表示容器的ID
image:表示镜像名称
command:表示启动容器时候运行的命令
created:表示容器的创建时间
status:表示容器的状态-up运行中,exited退出
ports:表示容器对外的端口
names:表示容器的名称,一般自动生成也可以在run时候--name指定
docker stop ddsp:停止容器
docker kill ddss: 强制杀死应用
docker start ddsp:启动已经停止的容器
docker restart ddsp:重启容器
docker rm ddsp:删除容器