0


Docker

1.铺垫

1.什么是Docker

快速构建、运行、管理应用的工具(部署项目,以及项目依赖的各种组件,运维工具)

2.部署mysql

docker run -d
–name mysql2
-p 3307:3306
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=123
mysql

docker exec -it mysql bash

mysql -h 127.0.0.1 -u root -p123

在这里插入图片描述

2.1命令解读

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123\
  mysql
  • docker run创建并运行一个容器,-d是让容器在后台运行
  • –name:给容器去一个名字,必须唯一
  • -p 3306:3306:设置端口映射
  • -e key=value:是设置环境变量
  • mysql:指定运行的镜像的名字 正常为mysql:8.0 默认为最新版本在这里插入图片描述

Docker基础

1.常见命令

在这里插入图片描述
1.镜像拉取

docker pull nginx

2.查看镜像

docker images

3.保存镜像到本地

docker save -o nginx.tar nginx:latest

[root@localhost ~]# docker save -o nginx.tar nginx:latest[root@localhost ~]# ^C[root@localhost ~]# ll
total 191248
-rw-------. 1 root root      2925 Oct 17 02:49 anaconda-ks.cfg
drwxr-xr-x. 2 root root         6 Oct 17 06:31 docker
-rw-------. 1 root root 195826176 Oct 18 02:14 nginx.tar
-rw-------. 1 root root      2033 Oct 17 02:49 original-ks.cfg

4.删除镜像

docker rmi nginx:latest

5.从本地下载镜像

docker load -i nginx.tar

6.创建并运行容器(以nginx为例)

docker run -d --name nginx -p 80:80 nginx

7.查看容器

docker ps
docker ps --format “table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}”
查看所有容器
docker ps -a

8.停掉容器

docker stop nginx

9.重启/启动容器

docker start nginx

10.查看容器详细信息

docker inspect nginx

11.进入容器,查看容器内目录

docker exec -it nginx bash

12.查看日志

docker logs -f nginx

13.删除容器

docker rm mysql2
docker rm mysql2 -f 强制删除,不用先停下

2.命令别名

# 修改/root/.bashrc文件vi /root/.bashrc
内容如下:
# .bashrc# User specific aliases and functionsaliasrm='rm -i'aliascp='cp -i'aliasmv='mv -i'aliasdps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'aliasdis='docker images'# Source global definitionsif[ -f /etc/bashrc ];then. /etc/bashrc
fi

3.数据卷

案例-利用nginx容器部署静态资源

  • 创建Nginx容器,修改nginx容器内的html目录下的index.html文件查看变化。
  • 将静态资源部署到nginx的html目录。数据卷是一个虚拟目录,是容器目录宿主机目录之间映射的桥梁在这里插入图片描述

3.1数据卷命令

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

# 1.首先创建容器并指定数据卷,注意通过 -v 参数来指定数据卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

# 2.然后查看数据卷
docker volume ls# 结果
DRIVER    VOLUME NAME
local     29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f
local     html

# 3.查看数据卷详情
docker volume inspect html
# 结果[{"CreatedAt": "2024-05-17T19:57:08+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/html/_data","Name": "html","Options": null,"Scope": "local"}]# 4.查看/var/lib/docker/volumes/html/_data目录
ll /var/lib/docker/volumes/html/_data
# 可以看到与nginx的html目录内容一样,结果如下:
总用量 8
-rw-r--r--. 1 root root 497 12月 28 2021 50x.html
-rw-r--r--. 1 root root 615 12月 28 2021 index.html

# 5.进入该目录,并随意修改index.html内容
cd /var/lib/docker/volumes/html/_data
vi index.html

# 6.打开页面,查看效果# 7.进入容器内部,查看/usr/share/nginx/html目录内的文件是否变化
docker exec -it nginx bash

3.2数据卷与容器挂载方式二

1.查看容器是否有挂载数据卷

docker inspect mysql

在这里插入图片描述

# 1.删除原来的MySQL容器
docker rm-f mysql

# 2.进入root目录
cd ~
[root@bogon ~]# mkdir mysql[root@bogon ~]# cd mysql/[root@bogon mysql]# mkdir data[root@bogon mysql]# mkdir conf[root@bogon mysql]# mkdir init[root@bogon mysql]## 3.创建并运行新mysql容器,挂载本地目录
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

# 4.查看root目录,可以发现~/mysql/data目录已经自动创建好了ls-l mysql
# 结果:
总用量 4
drwxr-xr-x. 2 root    root   20 5月  19 15:11 conf
drwxr-xr-x. 7 polkitd root 4096 5月  19 15:11 data
drwxr-xr-x. 2 root    root   23 5月  19 15:11 init

# 查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化ls-l data# 5.查看MySQL容器内数据# 5.1.进入MySQL
docker exec -it mysql mysql -uroot -p123
# 5.2.查看编码表
show variables like "%char%";# 5.3.结果,发现编码是utf8mb4没有问题+--------------------------+--------------------------------+| Variable_name            | Value                          |+--------------------------+--------------------------------+| character_set_client     | utf8mb4                        || character_set_connection | utf8mb4                        || character_set_database   | utf8mb4                        || character_set_filesystem | binary                         || character_set_results    | utf8mb4                        || character_set_server     | utf8mb4                        || character_set_system     | utf8mb3                        || character_sets_dir       |/usr/share/mysql-8.0/charsets/|+--------------------------+--------------------------------+# 6.查看数据# 6.1.查看数据库
show databases;# 结果,hmall是黑马商城数据库+--------------------+| Database           |+--------------------+| hmall              || information_schema || mysql              || performance_schema || sys                |+--------------------+
5 rows in set(0.00 sec)# 6.2.切换到hmall数据库
use hmall;# 6.3.查看表
show tables;# 结果:+-----------------+| Tables_in_hmall |+-----------------+| address         || cart            || item            || order           || order_detail    || order_logistics || pay_order       || user            |+-----------------+# 6.4.查看address表数据+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+| id | user_id | province | city   | town     | mobile      | street        | contact   | is_default | notes |+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+| 59 |       1 | 北京     | 北京   | 朝阳区    | 13900112222 | 金燕龙办公楼   | 李佳诚    | 0          | NULL  || 60 |       1 | 北京     | 北京   | 朝阳区    | 13700221122 | 修正大厦       | 李佳红    | 0          | NULL  || 61 |       1 | 上海     | 上海   | 浦东新区  | 13301212233 | 航头镇航头路   | 李佳星    | 1          | NULL  || 63 |       1 | 广东     | 佛山   | 永春      | 13301212233 | 永春武馆       | 李晓龙    | 0          | NULL  |+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
4 rows in set(0.00 sec)

4.自定义镜像

镜像包含了应用程序,程序运行的系统函数库。运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。
在这里插入图片描述

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

5.网络

两个容器在一个网段中,可以相互访问。
自定义网络:
1.创建:

docker network create ee

2.连接(容器连接网络)

docker network connect ee mysql

在这里插入图片描述

24: br-e652f2b78fb1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:b7:82:7f:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-e652f2b78fb1

容器创建时确定使用的网关:

docker run -d --name dd -p 8080:8080 --network ww docker-demo

在这里插入图片描述

在这里插入图片描述

部署

1.Java项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.前端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.DockerCompose
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/m07170729/article/details/143057442
版权归原作者 小马吃饱了 所有, 如有侵权,请联系我们删除。

“Docker”的评论:

还没有评论