Docker命令教程Mariadb数据库拉取创建命令示例详解

2023-10-08 13:40:26 浏览数 (2)

一文学会Docker

代码语言:javascript复制
docker run -d --name mariadb      #新建并启动容器-d表示后台运行容器
  -p 3344:3306                    #端口:容器默认端口 ——指定有个本机端口映射到容器端口
  -e MYSQL_ROOT_PASSWORD=123456   #向容器内传递环境变量,启动容器时用户可以动态传参
  -v /root/nextcloud/mariadb:/var/lib/mysql    #保持容器文件和外部目录文件同步前面是外部目录后面是容器目录
  --restart unless-stopped 	   #表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器
  mariadb:10.5.12                  #镜像名字和版本

docker run -it --name 新名字 镜像名   #新建并启动容器。不会立即进入容器,exit退出后容器会继续运行

内容

说明

-d

守护进程,后台运行容器(启动便退出,再次进入exit退出后会后台运行)

-i

是以交互模式启动(-i和-t通常在一起使用)

-t

是为它分配一个命令行终端(-i和-t通常在一起使用)

-e

向容器内传递环境变量,启动容器时用户可以动态传参

-p

端口:容器默认端口 ——指定一个本机端口映射到容器内端口,使得可以从宿主机访问容器内。小写p

-P

随机分配映射端口。大写P

-v

宿主机目录(文件):容器目录(文件):文件映射,保持容器文件与外部同步

-u

以某个用户身份创建容器

--name nginx

容器命名

-m, --memory bytes

设置容器使用内存最大值

-h, --hostname string

指定容器的 host name

--dns 8.8.8.8

指定容器 dns 服务器

-e username="ritchie"

设置环境变量

--restart=

Docker 重启后,容器是否自动重启

--network=host

将容器网络更改为host,可以是任何你创建的网络或是默认网络

--restart=参数

--restart=always 容器退出时,docker会总是会自动重启容器

--restart=on-failure:3 表示容器的退出状态码非0(非正常退出),自动重启容器,自动从其3次。超过3次则不再重启

--restart=no 默认值,容器退出时,docker不自动重启

--restart=unless-stopped 表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器

网络配置

代码语言:javascript复制
docker network create 网络名称               #添加网络
docker network rm 网络名称                   #删除网络
docker network disconnect 网络名称 容器名称   #解除容器绑定的网络
docker network connect 网络名称 容器名称      #指定网络给容器
docker run --network=host  容器名称          #将容器网络更改为host
docker network inspect 网络名称              #查看网络详细信息

名称

说明

bridge

虚拟网桥,默认模式,每一个容器有独立的ip,并将容器连接到docker0网桥上

host

使用宿主机的ip和端口号,容器不会虚拟出自己的网卡不可配置ip

none

有独立的network namespace,但是并没用任何网络设置

container

和另一个指定容器共享ip和端口号,不会虚拟出网卡或者配置ip

镜像拉取及常用操作

代码语言:javascript复制
docker search 镜像名称                  #查找镜像
docker pull 镜像名:版本                 #拉取镜像latest
docker images                          #查看镜像列表

docker ps                              #查看正在运行的docker容器,加上-a 表示查看所有的容器
exit                                   #容器停止退出。
ctrl P Q                               #容器不停止退出
docker start -i 容器名                 #交互模式启动容器
docker restart 容器名                  #重启容器
docker stop 容器名                     #关闭容器
docker kill 容器名                     #暴力关闭容器
docker rm:容器名或id                  #删除已停止的容器。
docker rmi:镜像id                     #删除指定id镜像
docker inspect 容器名称                #查看容器配置
docker rename 容器名 新名字            #修改容器名字

service docker start                  #docker启动
service docker stop                   #docker停止
service docker restart                #docker重启

在容器外执行命令

代码语言:javascript复制
docker exec -it 容器名 bash           #登录容器
docker exec -it --user 用户名 容器名 bash   #以指定用户登录容器
docker exec -it --user 用户名 容器名 命令   #不进入容器,登录容器执行命令

不能登录容器

代码语言:javascript复制
usermod -s /bin/bash www-data
su www-data

构建镜像

代码语言:javascript复制
docker build  -t 镜像名字:镜像标签 目录

0 人点赞