docker安装常用软件
目录
docker安装常用软件
docker安装运行redis
一、DockerHup redis仓库
二、镜像拉取
三、镜像启动
四、参数解析
docker安装运行mysql
一、拉取镜像
二、运行镜像
docker部署运行单机kafka
拉取zookeeper并运行
拉取kafka镜像并运行
命令配置:
注意
docker安装nginx
一、拉取镜像
二、在宿主机的/root/docker/nginx下创建配置文件nginx.conf
三、运行如下命令
四、放行端口
配置国内docker源
docker安装运行redis
一、DockerHup redis仓库
redis docker官方镜像库地址:https://hub.docker.com/_/redis 有详细的用法
二、镜像拉取
不指定版本号,则默认使用latest
最新版本
docker pull redis
或者拉取指定版本号
docker pull redis:6.0.8
三、镜像启动
- 一般启动
docker run -d -p 6379:6379 redis
- 设置密码启动
docker run --name redis -d -p 6379:6379 redis --requirepass "password"
- 设置配置文件启动
docker run --name redis -v /root/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 redis redis-server /usr/local/etc/redis/redis.conf
- 开机启动
docker run --name redis -d -p 6379:6379 --restart=always redis --requirepass "password"
四、参数解析
-
-d
:后台运行,守护进程(daemon); -
-p
:映射端口,port,映射容器端口到本机端口,先写本地后容器 -
--name
:定义容器名称 -
-v
:映射文件或文件夹,volume,先本地后容器 --restart
:重启策略,
-
no
:任何情况下,不重启容器 -
on-failure
:容器非0退出,重新启动容器 -
always
:任何情况下,容器没有启动,则启动容器
注意:开机启动前提,docker服务首先要是开机启动的systemctl enable docker
docker安装运行mysql
一、拉取镜像
docker pull mysql //拉取最新镜像
或
docker pull mysql:5.7 //拉取指定版本镜像
一般我们会指定版本,这里使用5.7,有哪些版本可以到DockerHub查看,上面也有详细用法,镜像默认都是在DockerHub上拉取
二、运行镜像
docker run --name mysql-5.7 --privileged=true -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:5.7
参数浅析
-
--name mysql-5.7
给容器命名,名字可以随便起,已启动容器没有重名即可,如果有重名的需要删除之前的,docker ps -a
查看所有容器,停止正在运行的容器docker stop 'containerId'
,docker rm
删除容器;具体命令docker命令参考docker常用命令 -
-v
映射本地目录或文件到容器,这里分别映射数据存储和mysql配置,/home/mysql/conf
为文件夹,映射到容器/etc/mysql/conf.d
目录,容器启动时会从conf.d
加载配置文件,/home/mysql/conf
文件夹下包含mysql.cnf
文件中写mysql配置(如下);
[mysqld]
lower_case_table_names=1
-
/home/mysql/data
为mysql数据存储,防止容器重启数据丢失; -
-e
设置参数,-e MYSQL_ROOT_PASSWORD=root
设置root账号密码为root -
-p
映射端口,映射本机3306到容器3306 -
--privileged=true
解决CentOS下映射目录权限问题chown: changing ownership of '/var/lib/mysql/': Permission denied
-
-d
守护进程,容器后台运行
docker部署运行单机kafka
拉取zookeeper并运行
docker pull wurstmeister/zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
拉取kafka镜像并运行
docker pull wurstmeister/kafka
docker run -d --name kafka -p 9092:9092 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=10.103.237.33:2181 -e KAFKA_ADVERTISED_HOST_NAME=10.103.237.33 -e KAFKA_ADVERTISED_PORT=9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
命令配置:
- KAFKA_ZOOKEEPER_CONNECT :指定 zookeeper 的 “地址
:
端口”,请更换自己的ip和端口; - KAFKA_ADVERTISED_HOST_NAME:kafka安装机器ip;
注意
- 启动kafka后,如果连接不上zookeeper,提示
Socket error occurred: 10.103.237.33/10.103.237.33:2181: Host is unreachable (org.apache.zookeeper.ClientCnxn)
需要加防火墙2181端口,命令(CentOS 7):
firewall-cmd --add-port=2181/tcp --permanent
systemctl restart firewalld
添加端口需要重启防火墙
- 9092端口可能也需要加入防火墙策略,具体根据日志提示
(我遇到的情况:telnet 2181是通的,但还是要加防火墙策略才能正常启动kafka)
docker安装nginx
一、拉取镜像
docker pull nginx
二、在宿主机的/root/docker/nginx下创建配置文件nginx.conf
cd /root/docker/nginx
vi nginx.conf
三、运行如下命令
docker run --name nginxSoft -v /root/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/file/:/usr/local/file/ -p 80:80 -d nginx
四、放行端口
firewall-cmd --add-port=80/tcp --permanent
systemctl restart firewalld