# docker是什么???
说实话关于Docker是什么并太好说,下面我通过四点向你说明Docker到底是个什么东西。
Docker是世界领先的软件容器平台。
Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC。
Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。
用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
原文:http://dockone.io/article/6051
## docker安装:
```
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ yum -y install docker-ce-18.06.1.ce-3.el7
$ systemctl enable docker && systemctl start docker
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
````
因为docker的镜像的国外的非常慢
推荐首页阿里的docker镜像库:
```
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rsj0shyq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
### docker的基本操作
#### 1.启动与停止Docker
systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
### 2.列出镜像
列出docker下的所有镜像:docker images

REPOSITORY:镜像所在的仓库名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
### 3.创建容器
创建容器命令:docker run
```
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
--restart no/on-failure:10/unless-stopped/always 参数来指定重启策略(一般我们指定:always)
```
#### restart 参数解释
no 不自动重启容器. (默认值)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算
注意:如果容器已经被创建,我们想要修改容器的重启策略
```
docker update --restart no 容器id
```
关于docker run 的其他参数可以通过 docker run --help 查看
### 4.停止与启动容器
停止正在运行的容器:docker stop 容器id
启动已运行过的容器:docker start 容器id
重启已运行过的容器:docker restart 容器id
#### docker 常用参数:
1.搜索docker镜像
```
docker search 镜像名
```
2.下载docker 镜像
```
docker pull 名称:版本
```
3.查看运行的docker容器
```
docker ps
-a 可选:查看所有的docker容器
```
4.删除容器
```
docker rm 容器id // 删除单个容器
docker rm `docker ps -a -q`// 删除所有容器
```
5.删除镜像
```
docker rmi 镜像id
```
6.进入容器内部
```
docker exec -it 容器id /bin/bash
```
7.查看容器的详细信息
```
docker inspect 容器id
```
8.docker自己的ip
```
docker inspect --format '{{ .NetworkSettings.IPAddress }}'容器id
```
9.docker 文件拷贝
```
docker cp 需要拷贝的文件或目录 容器名称:容器目录
```

Docker 入门与安装