一、前言
Docker部署应用项目之前,首先要做一些准备工作。比如CentOS 7操作系统、网络环境等。本文基于CentOS 7 操作系统安装Docker,罗列常用的Docker命令。
二、概念
首先, Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中。然后发布到任何的Linux机器上,实现虚拟化,是操作系统级的虚拟化技术。
Docker 优点:
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
三、安装步骤 - 软件源内安装Docker
- yum源更新, 安装所需依赖包
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
- 配置Docker仓库,推荐使用阿里源
# 官方yum源,速度较慢
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker
yum -y install docker-ce
docker -v
- 配置docker镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://o9xov9fj.mirror.aliyuncs.com",
"https://dockerhub.azk8s.cn",
"https://registry.docker-cn.com",
"https://7ky1d6ld.mirror.aliyuncs.com"
]
}
- 启动 Docker
systemctl start docker
四、Docker 常用命令
- Docker 镜像常用命令
# 查看镜像
docker images
# 搜索镜像
docker search centos
# 拉取镜像
docker pull centos
docker pull centos:7
# 删除某个镜像 IMAGEID为镜像ID
docker rmi IMAGEID
# 删除所有镜像
docker rmi 'docker images -q'
- Docker 容器常用命令
# 查看正在运行的容器
docker ps
# 查看所有的容器
docker ps -a
# 容器创建
docker run
-i 运行容器
-t 容器启动后会进入命令行
--name 容器命名
-v 宿主机目录与容器目录进行映射
-d 创建一个守护式的容器在后台运行(这样创建容器不会自动登陆容器,如果只加-i-t两个参数,创建后就会自动进入容器)
-p 表示端口映射
# docker run 示例 centos:7 为镜像名称
# (退出后容器就不运行)
docker run -it --name=mycentos centos:7 /bin/bash
# (守护方式创建)
docker run -di --name=mycentos2 centos:7
# 目录映射
docker run -di -v /root/data/:/root/data/ --name mycentos3 centos:7
# 进入docker命令行
docker exec -it mycentos2 /bin/bash
# 停止docker容器 CONTAINERID为容器ID
docker stop CONTAINERID
启动docker容器
docker start CONTAINERID
# 宿主机的文件拷贝到docker容器中
docker cp 宿主机文件目录 CONTAINERID:容器文件目录
# 宿主机文件目录 docker文件拷贝到宿主机目录
docker cp CONTAINERID:容器文件目录
# 查看容器信息
docker inspect CONTAINERID --format="{{.NetworkSettings.IPAddress}}"
# 删除容器
docker rm CONTAINERID
五、容器运行 (示例)
- 运行、启动容器
docker run -it --name mycentos -p 80:80 centos:7
- 进入容器目录,进行操作
docker exec -it CONTAINERID /bin/bash
六、结尾
本文中主要是Docker的安装以及基础命令。下篇文章中会详细讲解 Docker 的部署,包括Node容器以及Nginx容器(基于所做的博客系统)。