docker
docker简介
docker浅谈
- docker并不是docker公司所有的。是基于linux内核的容器技术,
- docker的本质:单进程(不代表只能跑一个进程)
- 容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”
- 容器瘦身。干掉旧的,自己创建一个
- docker镜像可以启动多次
- 镜像每启动一次就是一个容器
docker核心技术
- Cgroups 资源限制.
包括 CPU、内存、磁盘、网络带宽等等- Namespace 名称空间隔离.
名称空间用于对进程直接的隔离,就是保证进程只能看到我们规定好的那些资源
镜像到容器
- 1.查找镜像
docker search 镜像名称- 2.下载镜像到本地
docker pull 镜像名称- 3.运行镜像
docker run 镜像名称- 4.启动容器
docker start 容器ID
下载Docker仓库
yum -y install yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce docker-ce-cli containerd.io
启动Docker并添加开机自启
systemctl start docker && systemctl enable docker
docker主目录
/var/lib/docker #将目录删掉,就会删除所有
添加镜像加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://6rgl7z4q.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
查看本地镜像
docker images
查看容器
docker ps #查看已启动的容器
docker ps -a #查看所有容器
删除容器
docker rm 容器ID/容器名称 #只能删除已停止的容器
docker rm -f 容器ID/容器名称 #可以删除运行中的容器
docker rm -f $(docker ps -a) #批量删除所有容器
启动容器
docker start 镜像ID
#启动容器的时候给容器起名
docker run -it --name haha centos:7
容器名称 镜像名称
停止容器
docker stop 容器ID
搜索镜像并下载镜像到本地
[root@docker ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 14650 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1999 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 812 [OK]
[root@docker ~]# docker pull nginx
#镜像name
删除镜像
dcoker image ls #查看镜像
docker image rm REPOSITORY:TAG #REPOSITORY:TAG按照删除镜像
映射容器端口到本地端口
docker run -p 8000:80 nginx
映射端口 本地端口:容器端口 镜像名
挂载本地文件/目录到容器
#挂在是必须是绝对路径,并且是启动容器的时候才能挂载。当然文件也需要事先创建
#挂载文件时须在容器后加文件名
#挂载后的文件目录下文件并没有被删除,只是被隐藏了
docker run -it -v /root/default.conf:/tmp/default.conf centos:7
-v挂载参数 宿主机路径:容器路径