什么是Docker?
Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样
依赖安装:
yum install -y yum-utils device-mapper-persistent-data lvm2
-阿里源安装:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
docker安装:
yum install docker-ce # 安装指定版本,例如yum install -y docker-ce-18.09
启动并加入开机自启
systemctl start docker
systemctl enable docker
修改docker数据存放目录位置(默认目录是/var/lib/docker,这里防止/目录满我修改到数据盘内)和镜像加速
vim /etc/docker/daemon.json
{
"graph": "/data/docker",
"registry-mirrors": ["https://01xxgaft.mirror.aliyuncs.com"]
}
重启docker载入新配置:
systemctl restart docker
这里可以docker --help查看所有用法,下面是比较常用的
镜像搜索:
docker search 想搜索的镜像包名
(例如:docker search nginx
)docker pull 想下载的镜像包名
(例如:docker pull nginx
)docker image ls
docker run -d 镜像名
(直接后台启动容器 例如:docker run -d nginx
)docker run -d -ti 镜像名 /bin/bash
(使用交互模式启动容器 例如:docker run -d -ti centos /bin/bash
)docker run -d --name=标记名 镜像名
(给容器打上标记名 例如:docker run -d --name=test_nginx nginx
)docker run -d -p 需要映射的宿主机端口:容器端口 镜像名
(将容器端口映射到宿主机 例如:docker run -d -p 8080:80 nginx
这里就将容器的80端口映射到了宿主机的8080端口)docker exec -ti 镜像名 /bin/bash
(进入容器内部 例如:docker exec -ti centos /bin/bash
推出时按住ctrl不放,另一个只手按p,然后再按q,这样就是安全退出,容器也不会死掉,如果是用交互模式运行的,直接exit退出就行)显示所有的容器,包括已经停止运行的:docker ps -a
停止容器:docker stop 容器id或者标记的name
(这里id可以docker ps 看到,标记的name是启动时你设置的,例如停止上图的nginx:docker stop 7baea3ea0701
或 docker stop nginx_test1
)
删除容器:docker rm 容器id或者标记的name
(主要用于删除已经停止运行的容器,但是容器必须是停止状态才能删除,例如:docker rm 7baea3ea0701
或 docker rm nginx_test1
)
删除镜像:docker rmi 镜像名
(主要用于删除镜像 例如:docker rmi nginx
)
docker commit -m '提交内容' -a '提交人' 已启动并修改过的容器名 新的镜像名以及版本号
已启动并修改过的容器名 新的镜像名以及版本号 (主要用于将运行中的容器进入内部修改后将其打包成新的镜像)
docker commit -m 'test' -a 'test' nginx_test1 nginx:testv1.0.0
docker build -t 新的镜像名以及版本号 目录位置
(这里是使用dockerfile进行打包,需要新建一个目录并在里面创建一个Dockerfile文件)
docker save -o 保存的文件位置 镜像名
(例如:docker save -o /tmp/nginx.tar.gz nginx
)docker load < 镜像包位置
(例如 docker load < /tmp/nginx.tar.gz nginx
)docker cp 文件位置 容器id或标记的name:容器内位置
(将宿主机内文件拷贝到容器内,也可以反着来将容器内文件拷贝出来,例如:docker cp /tmp/1.txt nginx_name:/tmp/
反向拷贝:docker cp nginx_name:/tmp/ /tmp/1.txt
)docker run d -v 宿主机目录:容器内目录 镜像名
(将本地目录映射挂载到容器内目录,例如:docker run d -v /tmp/logs:/data/logs nginx
)如果觉得该文章对你有帮助的话请给我点个吧,感谢