docker笔记

docker笔记

1、docker安装 (使用centos7或者centos8都行)

  • 检查删除系统之前docker的残留(新系统略过)

    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine;	#如果yum报告都没安装过,就行。
    
  • 安装docker必要的依赖包

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  • 添加docker的软件源(阿里云)

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 添加完在/etc/yum.repo目录下,更新一下yum的缓存,建立元数据

    yum makecache fast
    
  • 下载docker-ce、启动docker

    yum install -y docker-ce、systemctl start docker
    systemctl enable docker #开机自启docker
    
  • 查看docker版本

    docker version
    
  • 卸载docker

    yum remove docker-ce
    rm -rf /var/lib/docker
    

2、docker镜像加速器

  • 进入/etc/docker目录下,修改或创建daemon.json
    例子{
    “registry-mirrors”: [“https://bt4ccuu4.mirror.aliyuncs.com”]
    }

    //这是我的的镜像加速器地址

  • 重启生效

    systemctl daemon-reload
    systemctl restart docker
    
  • 检测加速器是否生效

    docker info
    
    ...
    Registry Mirrors:
      https://bt4ccuu4.mirror.aliyuncs.com/ #最底下显示镜像地址就是生效
     Live Restore Enabled: false
    

3、docker镜像命令 docker镜像:[https://hub.docker.com/]

  • 拉取镜像

    docker pull 镜像名称[:标签] #标签里填写你所要的版本,不填默认是latest最新的
    docker pull ngnix:1.20  #拉取指定版本ngnix1.20版本的镜像
    
  • 显示所有镜像

    docker images
    
    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    nginx        latest    88736fe82739   2 weeks ago   142MB
    tomcat       latest    1ca69d1bf49a   2 weeks ago   474MB
    镜像名		   版本号	   镜像id			 最近更新时间		大小
    
  • 删除镜像

    docker  rmi 镜像id  #删除镜像前必须确认此镜像没有被容器使用
    
  • 导入导出镜像

    docker save --help #查看save命令帮助文档
    docker save -o nacos.tar nacos/nacos-server:latest  #将docker中的镜像导出到Linux中,会得到一个nacos.tar文件
    docker load -i nacos.tar #将本地镜像压缩包导入到docker中
    

4、docker容器

  • 创建并启动容器

    docker run 参数 镜像名称:tag  执行的命令
    常用参数:-d 后台运行容器
    		--rm 容器在启动后,容器关闭后就自动销毁该容器
    		--name 给容器自定义一个名称
    		-p 宿主机:内部端口
    
    docker run -d --name tomcat8080 -p 8080:8080 tomcat
    docker run -d --name tomcat1 -p 8081:8080 --rm tomcat
    docker run -id --name mysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 #创建mysql镜像要设置密码
    docker run --name redis-test -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass 'admin' #创建docker容器  
    # -p 6379:6379 :将容器内端口映射到宿主机端口(右边映射到左边)
    #redis-server –appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
    #requirepass “admin” :设置认证密码
    #–restart=always : 随docker启动而启动
    
  • 停止容器

    docker stop $(docker ps -a -q)  #停止所有容器
    docker stop 容器id或容器名 #停止指定容器
    docker start 容器id或容器名 #启动指定停掉的容器
    
  • 删除容器

    docker rm 容器id或容器名 #删除容器前要保证容器停止状态
    docker rm $(docker ps -a -q) #s
    
  • 查看容器状态

    docker ps #查看运行的容器
    docker ps -a  #查看所有的容器
    

5、CenterOS防火墙端口

  • 查看已经放行的端口

    firewall-cmd --list-ports
    
  • 开启端口

    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  • 关闭端口

    firewall-cmd --permanent --zone=public --remove-port=8080/tcp
    

6、Docker进入容器

  • 进入容器

    docker exec -it 容器id/容器名 bash
    #案例
    docker exec -it tomcat8080 bash
    docker exec -it  nginx80 bash
    docker exec -it 9ccc redis-cli -a admin #进入redis容器,执行redis客户端  9ccc为redis的镜像id
    #进入redis容器第二种方式
    docker exec -it 9ccc redis-cli 
    #然后输入密码
    Auth 密码
    docker exec -it 9ccc redis-cli #进入不带密码的客户端 
    exit #退出
    
  • 在宿主机和容器之间交换文件

    docker cp  [OPTIONS] CONTAINER:PATH LOCALPATH  #容器中 复制到 宿主机
    docker cp [OPTIONS] LOCALPATH- CONTAINER:PATH #宿主机 复制到 容器中
    #实例:
    docker cp tomcat-8081:/usr/local/tomcat/webapps/ROOT/index.html  /root/公共/aaa
    docker cp /root/公共/aaa/index.html tomcat-8081:/usr/local/tomcat/webapps/ROOT
    docker cp 1.jpg tomcat-8081:/usr/local/tomcat/webapps/ROOT #图片复制到容器中
    
  • 查看日志

    docker logs 容器id/容器名
    
  • 数据卷
    数据卷是一个可供一个或多个容器使用的特殊目录,数据卷改变后,每个使用数据卷的docker容器数据也会实时改变

    #案例
    docker run -d --privileged=true -p 9000:9000 -p 9001:9001 --name my-minio  -v /mnt/minio/data:/data -v /mnt/minio/config:/root/.minio   -e "MINIO_ROOT_USER=minio"  -e "MINIO_ROOT_PASSWORD=admin123" minio/minio server /data --console-address ":9001" #docker创建minio容器
    
    
    vi /tmp/exam/index.htm #创建数据卷
    docker run -d --name tomcat8080 -p 8080:8080 -v /tmp/exam:/usr/local/tomcat/webapps/exam tomcat # 创建tomcat8080容器,并将/tmp/exam目录写入容器中
    docker run -d --name tomcat8081 -p 8081:8080 -v /tmp/exam:/usr/local/tomcat/webapps/exam tomcat # 创建tomcat8081容器,并将/tmp/exam目录写入容器中
    docker run -d --name tomcat8082 -p 8082:8080 -v /tmp/exam:/usr/local/tomcat/webapps/exam tomcat # 创建tomcat8082容器,并将/tmp/exam目录写入容器中
    #更改/tmp/exam/index.html 三个容器中数据同时改变,删除容器数据卷的数据也不会改变
    

7、idea集成docker实现镜像打包一键部署

  • docker开启远程访问

    #修改docker服务文件
    vi /lib/systemd/system/docker.service
    #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 改为
    #ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    
    systemctl daemon-reload #重新加载配置文件
    systemctl restart docker.service #重启docker服务
    
  • idea中快速配置
    首先要去下载docker插件
    docker配置
    在这里插入图片描述

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <--添加maven-docker-plugin插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
    
                <configuration>
                    <dockerHost>http://192.168.197.129:2375</dockerHost>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <baseImage>java</baseImage>
                    <!--作者信息-->
                    <maintainer>docker_maven docker_maven@email.com</maintainer>
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]        </entryPoint>
                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    执行:
    在这里插入图片描述
    查看镜像是否创建成功:
    在这里插入图片描述
    创建容器
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值