Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
安装Docker
以Linux系统为例,Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。
1.首先安装yum工具
1 2 3
| yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken
|
2.更新本地镜像源,换为阿里镜像。
1 2 3 4 5 6 7 8
| # 设置docker镜像源 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
|
3.安装docker
1
| yum install -y docker-ce
|
4.启动docker
1 2 3 4 5 6 7
| systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
systemctl status docker # 查看docker服务状态
|
然后输入命令,可以查看docker版本:
PS:注意docker使用到的端口需要设置防火墙放开。
5.配置镜像加速
参考:阿里云镜像加速文档
1 2 3 4 5 6 7 8
| sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://al8twsu9.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
|
Docker 常用命令
镜像操作
拉取镜像可以通过查看DockerHub获取想要的镜像
1 2 3 4 5 6
| docker pull repository:tag # 拉取一个镜像 docker images # 查看镜像 docker save -o [文件名,如nginx.tar] repository:tag # 导出镜像到压缩包 docker rmi repository:tag # 删除一个镜像 docker load -i [文件,如nginx.tar] # 加载一个镜像 docker push repository:tag # 上传本地镜像到镜像仓库中
|
容器操作
容器有三种状态:运行,暂停,停止
容器运行命令可以去DockerHub查看对应镜像帮助文档。
1 2 3 4 5 6 7 8 9 10 11
| docker run \ --name containerName \ -p 80:80 \ -v [数据卷名称]:容器文件路径 \ -d repository:tag # 运行一个容器
# --name:给容器取名 # -p:将宿主机端口与容器端口进行映射,冒号左侧为宿主机端口,右侧为容器端口 # -d:后台运行容器 daemon守护进程 # -v:数据卷挂载 # repository:tag 镜像名
|
1 2
| docker ps -a # 查看所有容器 # -a:查看所有的容器,默认展示运行中的容器
|
1 2 3 4
| docker logs -f containerName # 查看容器运行的日志
# -f:类似tail -f,持续打印日志 # containerName:容器名
|
1 2 3 4 5
| docker exec -it containerName bash # 进入容器执行命令
# -it:给当前进入的容器创建一个标准输入、输出终端,允许与容器交互 # containerName:容器名 # bash:进入容器后执行的命令,bash是linux终端交互命令
|
1
| docker stop containerName # 停止容器运行
|
1
| docker start containerName # 开始运行容器
|
1 2 3
| docker rm -f containerName # 删除容器
# -f:强制删除运行中的容器
|
1 2
| docker pause containerName # 暂停容器运行 docker unpause containerName # 继续运行容器
|
数据卷(volume)
数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。
数据卷操作的基本语法:
1 2 3 4 5
| docker volume create name # 创建一个数据卷 docker volume ls # 列出所有数据卷 docker volume inspect name # 查看数据卷详细信息 docker volume prune # 删除本地未使用的数据卷 docker volume rm name # 删除指定数据卷
|