介绍
Docker 有点像虚拟机。但与虚拟机不同,Docker不是创建一个完整的虚拟操作系统,而是通过共享宿主机内核资源,创建一个个隔离的环境来运行应用程序。这样可以显著提升性能并缩小应用程序的大小。
安装
centos 下
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
#启动服务
$ sudo systemctl start docker
#设为开机启动(可选)
$ sudo systemctl enable docker
#测试
$ sudo docker run hello-world
#将当前用户加入docker用户组,执行docker命令不用sudo
$ sudo usermod -aG docker your-user
安装完成后开启加速,修改 /etc/docker/daemon.json
配置,使用中国镜像加速
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
重启 sudo systemctl daemon-reload && sudo systemctl restart docker
后生效
基本使用
docker 有三个概念:仓库,镜像,容器
- 仓库:存储镜像,类似 github 的仓库。
- 镜像:一个可执行包,包含运行应用程序所需的所有内容,代码,依赖,环境变量和配置文件。
- 容器: 运行中的镜像的一个实例。
操作镜像
搜索一个镜像,以 nginx 为例
$ docker search nginx
拉取一个 nginx 镜像到本地,默认拉取 latest
tag 的镜像,可以去 https://hub.docker.com/_/nginx?tab=tags 选择你想要的 tag 进行拉取
$ docker pull nginx[:tag]
运行一个镜像,如果本地没有这个镜像,会先进行 pull 操作
## --rm 容器停止后删除
## -p 端口转发 --name 命名容器
$ docker run --rm -p 8080:80 --name my-nginx nginx
然后浏览器打开 http://127.0.0.1:8080/
此时会在终端打印出 nginx 日志,想要后台运行加 -d
参数
列出本地镜像,可以看到刚才拉取的 nginx
$ docker image ls #等于docker images
删除一个或多个本地镜像,-f
强制,image_id 无需全部打出,只要不冲突打前一位都没问题
$ docker image rm IMAGE_ID1 [ IMAGE_ID2 IMAGE_ID3]
或者 docker rmi ...
也是删除镜像
操作容器
一个镜像运行起来就是一个容器了,接着上面运行起来 nginx 后,新开一个终端
列出/停止/删除容器
$ docker container ls #[-a所有,包括停止的]
$ docker stop/rm CONTAINER_ID #[or name]
进入一个容器
$ docker exec -it my-nginx /bin/sh
结语
这里只写了一些最简单的基本操作,想要深入了解请查阅官方文档