1、简介
Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使
用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
2、核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
3、安装docker
1)、安装虚拟机
2)、在linux上安装docker
1.查看内核版本 <Docker 要求 CentOS 系统的内核版本高于 3.10>
uname -r
2.把yum包更新到最新
sudo yum update
3.配置阿里云镜像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5.设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6.查看仓库中docker版本
yum list docker-ce --showduplicates | sort -r
7. 安装docker
sudo yum install docker-ce
8.启动Docker,设置开机启动,停止Docker
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl stop docker
9.查看版本
docker version
4、docker常用命令&操作
1.使用一下确认是否启动成功,使用search 查一下
docker search tomcat
2.拉取镜像
docker pull tomcat
3.查看运行中的容器
docker ps
4.停止运行中的容器
docker stop 容器的id
5.查看所有的容器
docker ps ‐a
6.启动容器
docker start 容器id
7.删除一个容器
docker rm 容器id
8.查看下载的所有镜像
docker images
9.启动一个做了端口映射的tomcat
docker run -d --name tomcat01 -p 8888:8080 tomcat:8.5.34
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
‐‐name:给容器取名
10.linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11.查看容器的日志
docker logs container‐name/container‐id
安装Mysql示例
错误的启动
[root@localhost ~]# docker run ‐‐name mysql01 ‐d mysql
42f09819908bb72dd99ae19e792e0a5d03c48638421fa64cce5f8ba0f40f5846
mysql退出了
[root@localhost ~]# docker ps ‐a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42f09819908b mysql "docker‐entrypoint.sh" 34 seconds ago Exited(1)33 seconds ago mysql01
正确的启动
[root@localhost ~]# docker run ‐p 3306:3306 ‐‐name mysql02 ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad10e4bc5c6a mysql "docker‐entrypoint.sh" 4 seconds ago Up 2 seconds 0.0.0.0:3306‐>3306/tcp mysql02