一、docker安装
1.查看centos版本
使用命令:
docker要求使用centos版本高于3.0
uname -r
如果低于该版本,可以升级软件包:
yum update
2.安装docker
yum install docker
4.启动docker
systemctl start docker
5将docker服务设置为开机启动
systemctl enable docker
二、常用操作
1、镜像操作(以安装mysql为例)
1.1、检索
docker search 关键字(mysql)
1.2、拉取版本
docker pull 镜像名(mysql)
1.3、查看当地所有镜像
docker images
1.4、移除镜像
docker rmi 镜像id
如下图所示:
2、容器操作
软件镜像(微信安装程序)–》运行镜像–》产生一个容器(正在运行的软件,运行的QQ)
步骤
(1)搜索镜像
[root@localhost ~]# docker install tomcat
(2)拉取镜像
[root@localhost ~]# docker pull tomcat
(3)根据镜像启动容器
[root@localhost ~]# docker run --name myTomcat -d tomcat
(4)查看运行中的容器
docker ps
此时地址栏中输入ip:8080是访问不到页面的,因为我们访问的是系统中的tomcat,但是我们启动的是docker容器中的tomcat容器,所以是访问不道德,此时我们停止运行中的tomcat容器
(5)停止运行中的docker容器
docker stop
[root@localhost ~]# docker run --name myTomcat -d tomcat
0e158fd91256d87b11bb0bd42cd02a1a06152b99837d4e7aefd757536f77e91c
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e158fd91256 tomcat "catalina.sh run" 2 minutes ago Up 2 minutes 8080/tcp myTomcat
[root@localhost ~]# docker stop 0e158fd91256
0e158fd91256
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]#
(6)查看所有状态的容器
[root@localhost ~]# docker ps -a
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e158fd91256 tomcat "catalina.sh run" 16 minutes ago Exited (143) 9 minutes ago myTomcat
[root@localhost ~]#
(7)删除已经停止的tomcat
注意:后边的id是我们通过docker ps -a
或者是docker ps
查询出来的
[root@localhost ~]# docker rm 0e158fd91256
此时我们在通过docker ps -a
发现已经没有运行中或者是未运行中的容器了
(8)、启动容器
[root@localhost ~]# docker start 0e158fd91256
0e158fd91256
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e158fd91256 tomcat "catalina.sh run" 17 minutes ago Up 7 seconds 8080/tcp myTomcat
[root@localhost ~]#
(9)容器端口映射—-启动端口映射后的tomcat
[root@localhost ~]# docker run -d -p 8888:8080 tomcat
e173f27298910b0cf4877fb7a6e547691d073063c8462d69c02b1269310a8912
[root@localhost ~]#
-d:后台运行
-p:将主机的端口映射到容器的一个端口 主机端口:内部容器端口
(10)查询虚拟机ip,之后地址栏访问
成功访问tomcat
(11)如果访问不到的话可能是没有关闭防火墙
service firewalld status;查看防火墙状态
service firewalld stop;关闭防火墙
注意:一个镜像可以启动多个容器。也可以不同的主机端口映射到同一个内部容器端口