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.confdefault.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
原文地址:https://www.cnblogs.com/flypig666/p/14149992.html