【docker入门】10分钟,快速学会docker

1 总体框图

在这里插入图片描述

2 快速入门

2.1 获取镜像

docker pull nginx
docker pull nginx:latest

2.2 查看本地镜像

docker images

2.3 运行镜像

docker run -d -p 80:80 nginx

-d 后台运行
-p 内外端口映射

2.4 查看正在运行的容器

docker ps

2.5 修改容器

docker exec -it xxxx bash

-it 接容器id
xxxx是容器ID的代号前两位

2.6 删除容器

docker rm -f xxx

xxx为容器ID

2.7 提交容器

docker commit xxx name

xxx为容器ID

2.8 通过dockerfile构建镜像跑成容器

在这里插入图片描述

  • 新建dockerfile文件(写法自行查阅官方文档)
    在这里插入图片描述
  • 然后在当前目录新建index.html
    在这里插入图片描述
  • build打包成镜像,此时通过镜像运行容器,nginx的index文件显示为上述内容
    在这里插入图片描述

2.9 保存文件和重新加载

在这里插入图片描述
保存

docker save name(镜像名称) > name(tar文件名称).tar

在这里插入图片描述

加载

docker load < name(tar文件名称).tar

在这里插入图片描述

2.10 其他摘抄

小狐狸的笔记

安装和常用CLI:
添加阿里云镜像:sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装命令:sudo yum install -y  docker-ce docker-ce-cli containerd.io
启动命令:sudo systemctl start docker
添加当前用户到docker用户组:sudo usermod -aG docker $USER (需注销),newgrp docker (立即生效)
Helloworld:docker run hello-world  (本地没有镜像的话会自动从远端仓库pull)
pull nginx 镜像:docker pull nginx(等效于nginx:latest)
运行:docker run -【d】(后台运行不阻塞shell) 【-p 80:80】(指定容器端口映射,内部:外部) nginx
查看正在运行:docker ps
删除容器:docker rm -f <container id(不用打全,前缀区分)>
进入bash:docker exec -it <container id(不用打全,前缀区分)> bash
commit镜像:docker commit <container id(不用打全,前缀区分)>  <name>
查看镜像列表:docker images (刚才commit的镜像)
使用运行刚才commit的镜像:docker run -d <name>
使用Dockerfile构建镜像:docker build -t <name> <存放Dockerfile的文件夹>
删除镜像:docker rmi <name>
保存为tar:docker save <name> > <tar name>
从tar加载:docker load < <tar name>

一些启动参数:
后台运行容器:-d
容器内外端口映射:-p 内部端口号:外部端口号
目录映射:-v 'dir name' : <dir>
指定映像版本:<name>:<ver>

入门操作

入门操作


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3 多容器部署

在这里插入图片描述

3.1 运行nginx容器,并查看ip

docker run -d -p 80:80 --name mynginx nginx
docker ps
docker exec -it mynginx bash
cat /etc/hosts

在这里插入图片描述
172.17.0.2是容器的ip
然后我们退出(exit)然后又启动一个新的容器

3.2 运行alpine容器通过curl访问nginx

docker run -dit alpine
docker exec -it xxxx(容器id) sh

apk add curl
curl 172.17.0.2

在这里插入图片描述
在这里插入图片描述

3.3 通过–link参数

--link 

把另一个容器映射到本容器里面(通过修改/etc/hosts文件)
在这里插入图片描述

3.4 三个容器的组织nginx、php、mysql

在这里插入图片描述
注意:创建顺序需要先mysql,然后启动php的时候link参数映射到mysql,同理类推~
这样对运维来说太麻烦了,有什么好方法吗?docker-compose

3.5 docker-compose

视频地址:https://www.bilibili.com/video/BV1Wt411w72h?from=search&seid=3688284699898465652

项目分为三个模块

  • nginx
  • php
  • mysql

目录结构如下
在这里插入图片描述
使用方式
在这里插入图片描述
然后就启动完成了, 如下图

CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                NAMES
25b3b7498399        nginx:alpine                      "nginx -g 'daemon of…"   50 seconds ago      Up 3 seconds        0.0.0.0:80->80/tcp   docker-compose-demo-1_nginx_1
c8aa834d8a6f        devilbox/php-fpm:8.0-work-0.106   "/docker-entrypoint.…"   50 seconds ago      Up 3 seconds        9000/tcp             docker-compose-demo-1_php_1
de051f9b9569        mysql:5.6                         "docker-entrypoint.s…"   50 seconds ago      Up 3 seconds        3306/tcp             docker-compose-demo-1_mysql_1

3.6 代码解析:

  • 新建俩文件夹
    conf
    html

在这里插入图片描述

  • 然后在conf/下面建立nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}
http {                                                  
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location ~ \.php$ {                     
            fastcgi_pass    php:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME     /var/www/html/$fastcgi_script_name;    
            include         fastcgi_params;
        }
    }
}
  • 然后写docker-compose.yml
version: "3"
services:
  nginx:
    image: nginx:alpine
    ports:
    - 80:80
    volumes:
    - ./html:/usr/share/nginx/html
    - ./conf/nginx.conf:/etc/nginx/nginx.conf
  php:
    image: devilbox/php-fpm:8.0-work-0.106
    volumes:
    - ./html:/var/www/html
  mysql:
    image: mysql:5.6
    environment:
    - MYSQL_ROOT_PASSWORD=123456
  • 在该目录下运行docker-compose up -d (-d 后台启动)

流程:
在这里插入图片描述
在这里插入图片描述

4 参考

【docker入门】10分钟,快速学会docker
【docker入门2】实战~如何组织一个多容器项目docker-compose
【docker compose演示程序】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值