linux 使用docker安装软件
1、安装nginx
参考:https://juejin.cn/post/6844904016086827016
一、获取nginx镜像
docker search nginx # 获取nginx镜像列表
docker pull nginx # 拉取官方最新镜像到本地
docker images nginx # 查看拉取到本地的nginx镜像IMAGE ID
二、创建nginx容器
测试下nginx镜像是否可用
docker run -d --name mynginx -p 80:80 7baf
- -d 指定容器以守护进程方式在后台运行
- --name 指定容器名称,此处我指定的是mynginx
- -p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口
- 231d 是nginx的镜像IMAGE ID前4位
命令执行后返回了容器ID,682bd....,此时我们已经成功创建了nginx容器.
在浏览器访问CentOS主机,会看到nginx欢迎页
三、将nginx容器内部配置文件挂载到主机
2、安装mysql
参考:https://blog.csdn.net/J080624/article/details/104297654
(ps:使用docker部署nginx容易产生403或者访问不到主机服务等问题,多半是配置不当)
一、获取mysql镜像
docker search mysql
docker pull mysql:5.6.45
docker images mysql
二、创建mysql容器
docker run -p 3306:3306 --name mysql -v /opt/soft/mysql/conf:/etc/mysql/conf.d -v /opt/soft/mysql/logs:/var/log/mysql -v /opt/soft/mysql/data:/var/lib/mysq -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.45 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
-p 3306:3306
:将主机的3306端口映射到docker容器的3306端口。--name mysql
:运行服务名字-v /opt/soft/mysql/conf:/etc/mysql/conf.d
:将主机/mydocker/mysql录下的conf/my.cnf 挂载到容器的 /etc/mysql/conf.d-v /opt/soft/mysql/logs:/var/log/mysql
:将主机/mydocker/mysql目录下的 logs 目录挂载到容器的 /logs。-v /opt/soft/mysql/data:/var/lib/mysql
:将主机/mydocker/mysql目录下的data目录挂载到容器的 /var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456
:初始化 root 用户的密码。-d mysql:5.7
: 后台程序运行mysql5.6.45--character-set-server=utf8mb4
:设置字符集--collation-server=utf8mb4_unicode_ci
:设置校对集
查看容器日志:
docker logs -f -t --tail 100 667bf66d4e5d
进入容器内部查看:
docker exec -it 667bf66d4e5d /bin/bash
退出容器的方式:
exit–容器停止退出
crtl+p+q—容器不停止退出
三、将nginx容器内部配置文件挂载到主机
1、在主机 /opt/soft 目录下执行mkdir -p ./nginx/{conf,html,logs}
2、将容器内的nginx.conf
与default.conf
文件分别拷贝到主机 /opt/soft/nginx 与目录 /opt/soft/nginx/conf 下,分别执行 :
- cp 命令代表复制
- ef是我们nginx容器的ID,/etc/nginx/nginx.conf 是容器内部nginx.conf 路径
docker cp ef:/etc/nginx/nginx.conf ./
docker cp ef:/etc/nginx/conf.d/default.conf ./conf/
3、停止刚刚创建的nginx容器,ef是容器ID
docker stop ef
docker rm ef
4、重新创建nginx容器
docker run -d --name mynginx -p 80:80 -v /opt/soft/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/soft/nginx/logs:/var/log/nginx -v /opt/soft/nginx/html:/usr/share/nginx/html -v /opt/soft/nginx/conf:/etc/nginx/conf.d --privileged=true 7baf