Docker常用安装

文章目录

Docker常用安装

一、Docker安装Nginx

1.1 下载镜像

docker pull Nginx

1.2 运行并挂载文件

docker run -d -p 80:80 --name Nginx01 -v Nginx-config:/etc/Nginx -v /data/:/data/ Nginx

注意

-v 是将:后面的容器内的文件挂载到宿主机上,也就是说用宿主机的配置来代替容器内的配置,更改宿主机的配置相当于是改容器内的配置,这样的话加入容器被删除了,也不会丢失我们的配置文件,这里使用的是具名挂载,指定了挂载文件名称,没有指定挂载的路径,具名挂载的路径在/var/lib/docker /volumes/挂载文件名,目录下。

-v /data/:/data/ 是将我们在Nginx.conf中配置的静态资源配置,挂载到宿主主机中,如果没有挂载这个静态资源路径,那么Nginx启动后会去自己的容器内部找静态资源,而不会到宿主机的/data下面去找静态资源,所以这里要一定要记得将宿主机的静态资源路径挂载到容器内部。

1.3 Nginx.conf配置文件

#显示所有的文件挂载
[root@veo _data]# docker volume ls
DRIVER    VOLUME NAME
local     Nginx-config
#查看文件挂载的路径
[root@veo _data]# docker volume inspect Nginx-config
[
    {
        "CreatedAt": "2021-02-14T08:48:45+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/Nginx-config/_data",
        "Name": "Nginx-config",
        "Options": null,
        "Scope": "local"
    }
]
#进入该目录,修改Nginx.conf
[root@veo _data]# cd /var/lib/docker/volumes/Nginx-config/_data
[root@veo _data]# ll
total 36
drwxr-xr-x 2 root root   26 Feb 13 21:48 conf.d
-rw-r--r-- 1 root root 1007 Dec 15 21:59 fastcgi_params
-rw-r--r-- 1 root root 2837 Dec 15 21:59 koi-utf
-rw-r--r-- 1 root root 2223 Dec 15 21:59 koi-win
-rw-r--r-- 1 root root 5231 Dec 15 21:59 mime.types
lrwxrwxrwx 1 root root   22 Dec 15 21:59 modules -> /usr/lib/Nginx/modules
-rw-r--r-- 1 root root  845 Feb 14 08:48 Nginx.conf
-rw-r--r-- 1 root root  636 Dec 15 21:59 scgi_params
-rw-r--r-- 1 root root  664 Dec 15 21:59 uwsgi_params
-rw-r--r-- 1 root root 3610 Dec 15 21:59 win-utf
http{
	server{
	listen 80;
	server_name localhost;
	
	location /images/ {
		root  /data/;
		autoindex on;
	}
	location  /www/ {
		root  /data/;
		expires 14d;
		index index.html index.htm;
	} 
	}
}

1.4 创建静态资源文件夹和添加静态资源

在这里插入图片描述

1.5 访问

  1. http://121.196.34.78/www/a.html
  2. http://121.196.34.78/images/

问题:

  1. Nginx如果想要监听多个端口,可以改变Nginx的网络模式(认为桥接模式),使用host网络模式,使容器和宿主机共享网络栈,前提是80端口没有被占用。

    docker run -d --net host --name Nginx02 -v Nginx-config:/etc/Nginx -v /data/:/data/ Nginx
    
    #如果运行不起,查看Nginx02的日志信息
    docker logs Nginx02
    
  2. 访问Nginx的时候不是客户端访问,而是宿主机通过docker0桥接的方式访问的,所以proxy_pass的地址要写具体的ip,而不是localhost。

二、Docker安装Tomcat

  1. 下载镜像
docker pull tomcat
  1. 运行
docker run -d -p 8080:8080 --name tomcat tomcat
  1. 访问出现404页面,进入容器发现webapps内部是空的,webapps.dist文件下用内容,将webapp.dist重命名为webapps,进入容器修改如下
docker exec -it tomcat /bin/bash
root@e39949855588:/usr/local/tomcat# ls
BUILDING.txt	 LICENSE  README.md	 RUNNING.txt  conf  logs	    temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin	      lib   native-jni-lib  webapps  work
root@e39949855588:/usr/local/tomcat# rm -rf webapps
root@e39949855588:/usr/local/tomcat# mv webapps.dist webapps
  1. 访问成功,如果想定制自己的站点可以将tomcat的webapps挂载出来
docker run --name tomcat -p 8080:8080 -v /root/tomcat/webapps/www:/usr/local/tomcat/webapps/www -d tomcat

三、Docker安装MysqL

  1. 下载镜像
docker pull MysqL
  1. 运行容器,并将数据库中的数据持久化到本地
#运行容器,并挂载文件
docker run -d -p 3306:3306 --name MysqL01 -v MysqL-conf:/etc/MysqL -v MysqL-data:/var/lib/MysqL -e MysqL_ROOT_PASSWORD=root MysqL
[root@veo ~]# docker volume ls
DRIVER    VOLUME NAME
local     MysqL-conf
local     MysqL-data
[root@veo ~]# docker volume inspect MysqL-data
[
    {
        "CreatedAt": "2021-02-14T10:23:23+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/MysqL-data/_data",
        "Name": "MysqL-data",
        "Options": null,
        "Scope": "local"
    }
]
[root@veo test]# cd /var/lib/docker/volumes/MysqL-data/_data
  1. 使用客户端连接测试

四、Docker安装redis

  1. 下载镜像
docker pull redis
  1. 运行镜像设置登录密码,并持久化到本地
[root@veo ~]# docker run -d --name redis-server -p 6379:6379 -v redis-conf:/etc/redis/redis.conf -v redis-data:/data redis /etc/redis/redis.conf --appendonly yes --requirepass "redis123"
[root@veo ~]# docker volume ls
DRIVER    VOLUME NAME
local     redis-conf
local     redis-data
  • -v :具名挂载文件,做数据持久化
  • /etc/redis/redis.conf :让redis以指定的配置文件启动,而不是认无配置启动
  • –appendonly yes: redis启动后开启数据持久化
  • –requirepass “redis123”:设置redis的连接密码
  1. 客户端连接测试

五、Docker安装rabbitmq

  1. 下载镜像
docker pull rabbitmq:management
  1. 运行镜像
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin 
-e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management

3.访问http://ip:15672

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...