首页 > 其他分享 >docker

docker

时间:2022-12-17 19:35:33浏览次数:36  
标签:容器 run -- mysql 镜像 docker

部署Nginx

> systemctl start docker # 启动docker
> docker pull nginx # 拉去nginx镜像
> docker run -d --name mynginx -p 3344:80 nginx # 启动一个nginx容器
		# -d 后台运行
		# --name 给容器命名
		# -p 端口映射,本地端口:容器端口
		# -P 随机映射主机端口
> docker exec -it mynginx /bin/bash # 进入一个容器
> docker run -d -P -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
		# -P 随机映射主机端口

image

部署Tomcat

> docker run -it --name mytomcat -p 3355:8080 tomcat:9.0.70-jdk8-corretto-al2 # 以前台的方式启动容器
> docker run -it -d --name mytomcat -p 3355:8080 tomcat:9.0.70-jdk8-corretto-al2 # 以后台的方式启动容器
> docker exec -it mytomcat /bin/bash # 进入容器
# 进入容器后发现webapps是空的。可以把webapp.dist中的ROOT文件移动到webapps中

部署 ES+Kibana

> docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
	 -e 环境变量的修改
> [root@192 ~]# curl localhost:9200              # 访问测试
{
  "name" : "5153f5025634",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "LTpDhgZDRP-ZyLecb15cRw",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

> docker stats # 查看内存使用情况

> docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
	# 增加-e ES_JAVA_OPTS限制使用的内存

docker 可视化工具

> docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

docker commit

# docker commit 提交容器提交容器成为一个新的镜像
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[tag]

> docker commit -m="mytomcat" -a="hardy" cd92399918fc testtomcat:1.0 # 提交自己的镜像

> [root@192 ~]# docker images
REPOSITORY                      TAG                        IMAGE ID            CREATED                  SIZE
docker.io/tomcat                9.0.70-jdk8-corretto-al2   616d03c63d58        Less than a second ago   379 MB
testtomcat                      1.0                        77f674d8db04        54 seconds ago           379 MB

>  docker run -d -p 3669:8080 77f674d8db04 # 使用自己的镜像

docker 数据集【Volumes】

容器之间的数据共享,docker中的数据同步到本地

方式一:使用 -v 命令来挂载

-v 主机目录:容器内部目录

> docker run -it -v /home/ceshi:/home centos /bin/bash

> docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql # 配置MySQL

image

方式二:具名挂载和匿名挂载

匿名挂载
-v : 直接加容器路径
> docker run -d -P --name nginx01 -v /ect/nginx nginx

image

具名挂载

> docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

image

查看volume的使用情况

> docker volume -- help

image
image

方式三:使用Dockfile

写一个dockerfile1

FROM centos
VOLUME ["volume01", "volume02"]

CMD echo "--------end------"
CMD /bin/bash

指令:

> docker build -f dockerfile1 -t hardy-centos . # 编译成一个镜像
		# -f 指定使用的dockerfile的路径。当在当前路径下,且文件名为默认的Dockerfile的时候,可以省略
		# -t target,生成目标,后面接镜像名:tag

> docker run -d hardy-centos # 使用自己的镜像生产容器

image
进入容器中可以发现该容器直接挂在了两个volume
image

Dockerfile

用来构建docker镜像的文件
主要指令:

FROM: 构建镜像时用到的基础镜像
MAINTAINER: 镜像的构建者
RUN: 构建镜像时需要运行的命令
ADD: 给镜像中添加文件
WORKDIR: 镜像的工作目录
VOLUME: 挂载的目录
EXPOSE: 暴露的端口
CMD: 容器启动时需要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT: 容器启动时需要运行的命运,可被追加
ONBUILD: 当构建一个被继承的dockerfile 这个时候就会运行ONBUILD。处罚指令
COPY: 与ADD类似,将文件拷贝到镜像中
ENV: 设置环境变量

标签:容器,run,--,mysql,镜像,docker
From: https://www.cnblogs.com/hardyzhou/p/16989392.html

相关文章

  • Docker的资源控制管理
    一、CPU控制cgroups,是一个非常强大的linux内核工具,他不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。所以cgroups(Contro......
  • 3、修改docker-compose-sonic.yml文件的2处IP地址
    docker-compose-sonic.yml文件:version:'3'services:sonic-mysql:image:"mysql:5.7"hostname:sonic-mysqlcommand:mysqld--character-set-server......
  • docker系列<五>镜像私有仓库
    一、一般的系统都是分布式系统,需要在很多台服务器上架设同一个服务应用,这个时候需要每一台服务器上去构建应用镜像然后创建容器。这样每一次根新容器的时候都需要一个一个......
  • Docker网络模式
    一、docker网络概述1.1docker网络实现的原理Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个I......
  • Docker学习
    1.概念1.镜像包含文件系统的面向Docker引擎的只读模板,给应用程序提供运行环境。CentOS、Ubuntu镜像指装载有该操作系统的模板,也可以在这之上装一些软件,例如Nginx镜像......
  • Windows for Docker 搭建LNMP开发环境
    转载至《Docker-Windows上搭建LNMP环境》1windows安装DockerDesktop下载地址注:请仔细查看安装环境要求,否则容易做无用功Hyper-v如果开启的话电脑有装VMware的话会V......
  • Docker报错:Error response from daemon: conflict: unable to remove repository refe
    解决报错内容是因为镜像被容器引用,那么删除容器在删除镜像。#查看容器dockerps-a#停止容器dockerstop***#删除容器dockerrm1c21d7ca4d79容器删除......
  • Docker 操作手册
    文章目录​​一、docker基础篇​​​​1.常用命令​​​​2.镜像操作​​​​3.容器操作​​​​4.文件拷贝​​​​5.目录挂载​​​​6.Docker镜像备份与迁移​​......
  • 虚拟机系统故障docker无法正常启动
    故障现象CentOS系统启动时出现Failedtomount/sysroot错误,导致系统无法正常启动。正常进入系统后,docker无法正常使用,出现Failedtoconnecttocontainerd:failedto......
  • docker
    1docker入门#虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实......