Docker安装与Nginx映射配置

环境:aliyun centos7.14

安装Docker

  • 安装
yum install docker
  • 检查
docker -v
  • 服务
systemctl status docker     // docker状态
systemctl stop docker       // 停止
systemctl start docker      // 启动
systemctl restart docker    // 重启
systemctl enable docker     // 开机启动
  • 检查
docker run hello-world

常用命令

与常用的linux命令一样,使用docker --help即可查看docker COMMAND,下面是即将用到的几个命令

  • 从注册中心拉取镜像或仓库
dokcer pull [image/repository name]:[verson]
  • 查看本地所有的镜像
docker images
  • 查看运行的容器
docker ps
  • 查看所有容器
docker ps -a
  • 启动容器
docker start [container]
  • 停止容器
docker stop [container]
  • 安装容器,详细命令可查看,docker run --help
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d :在后台运行一个容器

-i : 运行容器

-t : 进入命令行模式,及伪终端

-name : 给容器取名

-v : 目录映射,宿主机与容器之间的目录映射

-p : 端口映射,宿主机与容器之间的端口映射

  • 退出容器
exit

实战: 容器部署

配置镜像源

Docker 镜像仓库配置国内镜像源,同maven一样,docker hub的远程仓库在国外,拉取速度慢,因此可以配置一个国内的镜像源

  • 编辑文件
vim /etc/docker/daemon.json
  • 配置如下:
{
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "http://hub-mirror.c.163.com",
        "https://registry.docker-cn.com"
    ]
}

这4个地址分别对应中国国防科技,网易,docker中国

也可以配置aliyun的docker仓库,具体可参考官网进行配置属于自己的仓库

  • 配置完成后,重启docker服务
systemctl restart docker

MySql使用

安装

  • 拉取MySql镜像
docker pull mysql:5.7

具体版本可参考官网

image
  • 创建容器-简易版
docker run -di --name docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
  • 创建容器-目录挂载版
docker run --name docker_mysql -p 3306:3306 \
-v /root/mydocker/mysql/log:/var/log/mysql \
-v /root/mydocker/mysql/data:/var/lib/mysql \
-v /root/mydocker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=1234 \
-d mysql:5.7

log:日志
lib:持久化数据文件
etc:配置文件

精简配置

[client]
default-character-set = utf8mb4

[mysql]
#auto-rehash
default-character-set = utf8mb4

[mysqld]
port=3306
# 禁用主机名解析
skip-name-resolve
# 默认的数据库引擎
default-storage-engine = InnoDB

### 字符集配置
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
#行级日志
binlog_format = row

说明:

-di : 创建一个守护式容器,创建后在后台运行

--name docker_mysql : 容器命名为docker_mysql

-p 33306:3306 : 端口映射,宿主机端口端口33306对应docker中3306端口

-e MYSQL_ROOT_PASSWORD=1234 : 添加环境变量,mysql的root用户密码为1234

-mysql:5.7 : 指定运行的镜像名称及其版本

  • 查看容器中mysql运行
docker ps | grep docker_mysql
  • 查看docker_mysql信息
docker inspect docker_mysql
  • 进入docker_mysql容器,并登录mysql
[root@chet01 ~]# docker exec -it docker_mysql bash
root@8cda7c791c74:/# mysql -uroot -p

远程连接

这里使用navicat作为图形化工具远程连接,效果如下

image

Nginx使用

映射目录

  • 在宿主机中创建目录
mkdir ~/mydocker/nginx/log
mkdir ~/mydocker/nginx/conf
mkdir ~/mydocker/nginx/html

三个目录分别对应nginx中日志位置(/var/log/nginx/),配置文件位置(/etc/nginx/),项目位置(/usr/share/nginx/html)

安装

  • 拉取镜像
docker pull nginx
  • 运行容器
docker run -di --name docker_nginx -d -p 80:80
 -v /root/mydocker/nginx/log:/var/log/nginx
 -v /root/mydocker/nginx/conf:/etc/nginx/conf.d
 -v /root/mydocker/nginx/nginx.conf:/etc/nginx/nginx/conf
 -v /root/mydocker/nginx/html:/lx/html nginx
  • 重启docker中nginx
docker exec -it docker_nginx nginx -s reload
  • 验证nginx的配置
docker exec -it docker_nginx nginx -t
  • 查看nginx挂载情况
docker inspect docker_nginx | grep Mounts -A 20

修改映射文件

  • 修改宿主机中nginx的配置文件
vim ~/mydocker/nginx/conf/app.conf

内容如下:

server {
    listen       80;
    server_name  127.0.0.1;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /lx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
  • 配置访问页面
vim ~/mydocker/nginx/html/index.html

简要内容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to nginx!</title>
</head>
<body>
<h1>hello nginx</h1>
</body>
</html>

重启docker中的nginx,浏览器访问服务器地址

image

配置端口转发

现在希望用户访问我的80端口时,直接跳转到我的hexo博客端口4000,只需要简单修改配置文件即可

  • 修改app.conf

改动如下:

image

重启nginx,重新访问即可

image

如果你的aliyun配置了域名解析,访问域名也可以直接访问

Redis使用

安装

docker pull redis

启动

docker run --name docker_redis -p 6379:6379 \
-v /root/mydocker/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:latest redis-server /etc/redis/redis.conf 

conf说明

  • 参考官网配置文件

  • 主要修改:

#bind 127.0.0.1
protected-mode no
requirepass [password]
daemonize yes

进入客服端

docker exec -it docker_redis redis-cli -a [password]

连接测试如图

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,693评论 0 9
  • Docker是一种容器技术,它的存在就是为了解决容器技术本身的复杂性。Docker容器拥有很高的性能,同时同一台宿...
    四条眉毛陆小鸡阅读 555评论 0 0
  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流...
    5不忘初心0阅读 439评论 0 1
  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,179评论 2 10
  • 陶醉在你的声音里 文||与你相识 陶醉在你温柔的倾诉里 如同我眷恋的初恋般甜蜜 悄悄躲进黑夜里沉醉 完全掏尽整个灵...
    与你相识_40fa阅读 365评论 0 4