docker

本文详述了Docker的安装过程,包括Linux环境准备、镜像操作如拉取、查看和删除,容器操作如启动、停止及管理,特别讨论了数据卷的使用,介绍了如何自定义镜像通过Dockerfile,以及如何利用docker-compose进行容器编排,包括管理mysql和tomcat容器的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、docker安装

1)启动Linux

2)ocker依赖环境下载

yum -y install yum-utils device-mapper-persistent-data lvm2
3)指定docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo

4)安装docker

yum makecache fast
yum -y install docker-ce

5)启动docker

#启动docker
systemctl start docker
#开机自启动
system enable docker
#重启
systemctl restart docker
二、镜像操作

拉取镜像

docker pull 镜像标识

查看镜像

docker images

删除镜像

docker rmi 镜像标识
三、容器操作

运行

docker run 镜像标识

or

docker run -d -p 端口号:端口号 --name 名称 标识

查看运行容器

docker ps (-qa)

查看日志

docker logs -f 容器ID

进入容器内部

#进入容器内部
docker exec -it 容器ID bash

#从容器内部退出
exit

docker仓库

http://hub.daocloud.io/

8)复制内容到容器

docker cp 文件名称 容器ID:容器内部路径

 9)重启、启动、停止、删除容器

#重新启动
docker restart 容器ID

#启动停止运行的容器
docker satrt 容器ID

#停止指定的容器
docker stop 容器ID

#停止全部容器
docker stop $(docker ps -qa)


#删除指定容器
docker rm 容器ID

#删除全部容器
docker rm ${docker ps -qa)
四、docker安装mysql
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
五、数据卷

将宿主机的一个目录映射到容器的一个目录中。可以再宿主机中操作目录内容,容器内部映射文件也跟着一起改变

1)创建数据卷(创建数据卷后,默认存在目录/var/lib/docker/volumes/数据卷名称/_data)

docker volume create 数据卷名称

2)查看数据卷详情(查看数据卷详细信息,如存放路径、创建时间等)

docker volume inspect 数据卷名称

3)查看全部数据卷

docker volume ls

4)删除数据卷

docker volume rm 数据卷名称

5)容器映射到数据卷

映射的两种方式:

  • 通过数据卷名称映射,数据卷不存在,docker自动创建,会将容器内部自带的文件,存储在默认的存放路径中
  • 通过路径映射数据卷,直接指定一个路径作为数据卷存放的位置,路径是空的
#通过数据卷名称映射
docker run -v 数据卷名称:容器内部路径 镜像ID
例:
docker run -d -p 8080:8080 --name tomcat -v webdata:/usr/local/tomcat/webapps
e01

#通过路径映射数据卷
docker run -v 绝对路径:容器内部路径 镜像ID
例:
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /root/mysqldata:/var/lib/mysql daocloud.io/library/mysql:5.7.4
六、自定义镜像(dockerfile) 

1)自定义镜像语法

from:指定当前自定义镜像依赖的环境

copy:将相对路径下的内容复制到自定义镜像中

workdir:声明镜像的默认工作目录

run:执行的命令,可编写多个    yum install net-tools

cmd:需要执行的命令(在workdir下执行,cmd可写多个,以最后一个为准)

 例子:

制作SSM容器镜像,ssm.war要放在dockerfile的同级目录下

宿主机中要使用相对路径

注意:dockerfile中不要写中文注释

 from java:8

maintainer dong_

workdir .

add ./test.jar app.jar

expose 8080

entrypoint exec java -jar app.jar

2) 制作镜像

docker build -t 镜像名称[:tag] .
 七、docker-compose

创建容器:

docker run -d -p 8080:8080 --name tomcat -v 数据卷:容器内的目录

之前运行一个镜像,需要添加大量参数,可通过docker-compose编写这些参数。docker-compose可帮助批量管理容器,只需要通过一个docker-compose.yml文件去维护即可

1)下载docker-compose

https://github.com/docker/compose/releases/download/1.24.1/docker-compose
Linux-x86_64

2)设置权限

mv docker-xompose-Linux-x86_64 docker-compose
chmod 777 docker-compose

 3)配置环境变量

#文件移动到/usr/local/bin
mv docker-compose /usr/local/bin

#修改/etc/profile
vi /etc/profile
export PATH=$JAVA_HOME:/usr/local/bin:$PATH  #添加内容

#重新加载
sourse /etc/profile

 4)测试

任意目录输入docker-compose

docker-compose

八、docker-compose管理mysql和tomcat容器

yml文件以key:value方式来指定配置信息

多个配置信息以换行和缩进方式区分

在docker-compose文件中,不要使用制表符

version: '3.1'
    #代表当前yml文件中要设置那些docker容器
    services:
        #服务器名称
        mysql:
            #当前容器是否随docker一起启动
            restart: always
            #容器使用镜像
            image: daocloud.io/library/mysql:5.7.4
            #容器名称
            container_name: mysql
            #端口号映射
            ports:
                - 3306:3306
            #环境变量
            enviroment:
                MYSQL_ROOT_PASSWORD: root
                TZ: Asia/ShangHai
            #数据卷
            volumes:
                - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql
            tomcat:
                restart: always
            image:
                daocloud.io/library/tomcat:8.5.15-jre8
                container_name: tomcat
                ports:
                    - 8080:8080
                environment:
                    TZ: Asia/ShangHai
                volumes:
                    - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
                    - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs
九、使用docker-compose命令管理容器

使用docker-compose命令时,默认会在当前目录下找docker-compose.yml文件

#基于docker-compose.yml启动管理容器
docker-compose up -d

#关闭并删除容器
docker-compose down

#开启、关闭、重启已存在由docker-compose维护的容器
docker-compose start|stop|restart

#查看由docker-compose管理的容器
docker-compose ps

#查看日志
docker-compose logs -f
十、docker-compose配合dockerfile使用

使用docker-compose.yml文件以及dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器

1)编写docker-compose文件

version: '3.1'
services:
    rbac:
        restart: always
        #构建自定义镜像
        build:
            #指定dockerfile文件所在路径
            context: ./
            #指定dockerfile文件名称
            dockerfile: Dockerfile
        image: rbac:1.0.1
        container_name: rbac
        ports:
            - 8080:8080
        environment:
            TZ: Asia/ShangHai

2)编写dockerfile文件

form java:8

maintainer dong_

workdir .

add ./test.jar app.jar

expose 8080

entrypoint exec java -jar app.jar

3)运行

#直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像(不存在,构建镜像;存在,直接运行)
docker-compose up -d

#重新构建
docker-compose build

#运行当前内容,并重新构建
docker-compose up -d --build

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值