Docker基础语法

目录

一.docker安装

二.docker基础名词

三.docker基础命令

四.命令别名

五.数据卷

六.挂载本地目录或文件

七.Docker镜像

八.网络


一.docker安装


1.安装yum工具
yum install -y yum-utils device-mapper-persistent-data lvm2


2.安装 docker  yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


3.安装docker
yum install docker-ce


4.启动docker
systemctl start docker


5.查看docker状态
systemctl status docker


6.开机启动
systemctl enable docker


二.docker基础名词


镜像:应用及其运行所需要的环境、配置、系统级函数库


容器:docker会在运行镜像时创建一个隔离外界的环境


镜像仓库:提供存储、管理Docker镜像的服务器


三.docker基础命令
 

docker运行命令:

docker run -d \   创建并运行一个容器,-d则是让容器以后台进程运行

--name mysql \    给容器起个名字叫mysql 注:取容器名时,最好不要与镜像名重复

-p 3306:3306 \    设置端口映射   :给端口时前面的端口与后面的端口最好不同              

-e TZ=Asia/Shanghai \  配置容器内进程运行时的一些参数

-e MYSQL_ROOT_PASSWORD=123 \

mysql  设置镜像名称

对-p参数的解释:

 -p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口

常见基本命令:

用一副图来表示这些命令的关系:

四.命令别名

1.修改/.bashrc文件

vi ~/.bashrc

2.添加别名

alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'

3.使别名生效

source /root/.bashrc

五.数据卷

数据卷:是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁

数据卷将宿主机和Nginx容器关联:

在上图中:

  • 我们创建了两个数据卷:confhtml

  • Nginx容器内部的conf目录和html目录分别与两个数据卷关联。

  • 而数据卷conf和html分别指向了宿主机的/var/lib/docker/volumes/conf/_data目录和/var/lib/docker/volumes/html/_data目录

这样以来,容器内的confhtml目录就 与宿主机的confhtml目录关联起来,我们称为挂载。此时,我们操作宿主机的/var/lib/docker/volumes/html/_data就是在操作容器内的/usr/share/nginx/html/_data目录。只要我们将静态资源放入宿主机对应目录,就可以被Nginx代理了

数据卷的相关命令有:

注意:容器与数据卷的挂载要在创建容器时配置,而且创建容器的过程中,数据卷会自动创建

nginx的html目录挂载:          

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

                                                             数据卷            挂载点

六.挂载本地目录或文件

语法:-v 本地目录:容器内目录或文件

mysql容器本地目录挂载:

  • 挂载/root/mysql/data到容器内的/var/lib/mysql目录

  • 挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录(初始化的SQL脚本录)

  • 挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录(这个是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

七.Docker镜像

镜像:应用程序、程序运行的系统函数库、运行配置等文件的文件包

 

镜像结构图:

Dockerfile:一个文本文件, 其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。

常见指令:

八.网络

常见命令:

# 1.首先通过命令创建一个网络
docker network create hmall

# 2.然后查看网络
docker network ls


# 3.让dd和mysql都加入该网络
#网络内的容器可以用容器名互相访问!
# 3.1.mysql容器
docker network connect hmall mysql 

# 3.2.db容器,也就是我们的java项目
docker network connect hmall dd


# 4.进入容器
docker exec -it dd bash

# 5.用容器名访问
ping mysql
            PING mysql (172.18.0.2) 56(84) bytes of data.
            64 bytes from mysql.hmall (172.18.0.2): icmp_seq=1 ttl=64 time=0.044 ms
            64 bytes from mysql.hmall (172.18.0.2): icmp_seq=2 ttl=64 time=0.054 ms

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: docker-compose是一个用于定义和管理多个Docker容器的工具。它使用YAML(YAML Ain't Markup Language)格式的docker-compose.yml文件来描述应用程序的服务、网络和卷等配置。 docker-compose.yml文件由多个部分组成,包括版本、服务、网络和卷。 版本部分用来指定docker-compose所使用的格式版本,例如: ``` version: '3' ``` 服务部分是docker-compose.yml文件中最重要的部分,用来定义需要运行的容器,包括镜像名称、容器名称、端口映射、环境变量等,例如: ``` services: web: image: nginx:latest ports: - "80:80" environment: - DEBUG=true ``` 网络部分用来定义容器之间的网络连接,例如: ``` networks: mynetwork: ``` 卷部分用来定义数据持久化的方式,例如: ``` volumes: myvolume: ``` 通过docker-compose.yml文件中定义的服务、网络和卷等配置,可以方便地启动、停止、管理多个Docker容器。 除了上述基本语法外,docker-compose.yml文件还支持其他更高级的功能,如环境变量引用、扩展字段、容器依赖关系等。 总之,docker-compose.yml语法是用来描述和管理多个Docker容器的工具,可以通过定义版本、服务、网络和卷等配置来实现容器的启动、停止和管理。它使用YAML格式,具有简洁和易读性强的特点,方便开发者进行使用和维护。 ### 回答2: Docker Compose是一个用于定义和运行多个Docker容器的工具。它使用yml(YAML)语法来描述容器之间的关系、所需的映像、环境变量、端口绑定等信息。 在Docker Compose的yml文件中,我们可以定义多个服务(services),每个服务对应一个容器。每个服务可以指定一个映像(image),即使用的基础镜像以及所需的标签或版本号。 除了映像,我们可以为每个服务指定容器名称(container_name)、挂载的卷(volumes)、环境变量(environment)、端口映射(ports)等。 在yml文件中,可以使用"services"关键字来定义多个服务,每个服务都包括一个唯一的名称,以及下面的属性: - image: 指定使用的映像 - container_name: 指定容器的名称 - volumes: 指定挂载的卷 - environment: 指定环境变量 - ports: 指定端口映射 此外,我们还可以使用其他关键字来定义全局的配置选项,例如版本(version)、网络(networks)等。 版本指定了使用的Docker Compose yml文件的版本,可以使用1、2或3等不同版本。 网络定义了在Compose文件中使用的网络配置,可以指定网络模式为bridge、host或user-defined。 除了上述基本的语法,还可以使用一些高级特性如依赖关系、资源限制、扩展等。 总之,Docker Compose yml语法提供了一种简洁且易于理解的方式来定义和管理多个Docker容器,使得我们能够轻松地创建和运行多个容器化的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值