一、简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
二、安装
如需安装 Docker CE,您需要 64 位版本的 CentOS 7。
卸载旧版本
Docker 的早期版本称为 docker 或 docker-engine。如果安装了这些版本,请卸载它们及关联的依赖资源。
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
更新yum到最新
sudo yum update
安装依赖
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
更新 yum 软件包索引。
sudo yum makecache fast
安装最新版本的 Docker CE,或者转至下一步以安装特定版本。
sudo yum install docker-ce
查看版本、信息
docker -v
docker info
启动、停止、重启,开启自启docker
systemctl start/stop/restart/enable docker
三、常用指令
1.镜像相关
1.1查看镜像
docker images
1.2.删除镜像
docker rmi 镜像名字或者id
docker rmi `docker images -q` //删除所有
1.3.搜搜镜像
docker search 镜像名字
1.4.拉取镜像
docker pull 镜像名字
2.容器相关
2.1.查看容器
查看所有,运行+没运行的
docker ps //正在运行的容器
docker ps -a //全部容器
docker ps -l //最后一次运行的容器
docker ps -f status=exited //查看停止的容器
2.2.创建容器
参数 | 作用 |
---|---|
-i | 表示运行容器 |
-t | 表示启动后进入其命令行。加入这个参数后,肉哦容器创建就能进入一个伪终端 |
–name | 容器名字 |
-v | 目录映射,‘:’分割前面是宿主目录,后者是容器目录,可以多个-v创建多个映射目录 |
-d | 守护式创建容器,即创建后不会进去命令行 |
-p | 端口映射,‘:’分割,前者是主机端口,后者是容器端口 |
1.交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
exit //退出容器
2.守护式方式创建容器
docker run -di --name=容器名称 镜像名称:标签
docker exec -it 容器名称(或者id) /bin/bash
3.停止启动容器
docker stop 容器名称(或者id)
docker start 容器名称(或者id)
4.主机与容器文件互相拷贝
docker cp 主机目录 容器名称:容器目录 //主机到容器
docker cp 容器名称:容器目录 主机目录 //容器到主机
5.目录挂载
docker run -di -v 主机目录:容器目录 --name=容器名称 镜像名称
6.查看容器信息、ip
docker inspect 容器名称(id)
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(id)
7.删除容器
docker rm 容器名称(id)
四、搭建环境
1.mysql
docker run -di --name=con_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123 centos/mysql-57-centos7
2.tomcat
run -di --name=tomcat7 -p 8888:8080 -v /usr/local/webapps:/usr/local/webapps tomcat:7-jre7
3.tomcat
docker run -di --name=mynginx -p 8889:80 nginx
4.redis
docker run -di --name=myredis -p 16379:6379 redis
四、保存备份
4.1 容器保存为镜像
docker commit 容器名字 镜像名字
4.2 镜像备份
docker save -o 名字.tar 镜像名字
4.3镜像恢复
docker load -i 镜像名字.tar
五、Dockerfile
5.1常用指令
命令 | 容器 |
---|---|
FROM image_name:tag | 定义了从哪个镜像启动构建流程 |
MAINTAINER username | 声明创作者 |
ENV key value | 定义环境变量,可以多条 |
RUN cmd | 核心部分,可以写多条 |
ADD 宿主目录文件 容器目录文件 | 重宿主机添加文件到容器,会自动解压 |
COPY 宿主目录文件 容器目录文件 | 重宿主机添加文件到容器,不解压 |
WORKDIR 容器目录 | 工作目录 |
5.2 例子
FROM centos:7
MAINTAINER Uncle
WORKDIR /usr
RUN mkdir /usr/local
ADD jdk1.8.tar.gz /usr/local
ENV PATH /usr/local/jdk1.8/bin:$PATH
5.3 构建
docker build -t='镜像名称' Dockerfile所在目录