整理记录 docker 基本操作使用

  1. 前言
    1. 二、搭建自己的docker hub
    2. 三、docker使用
  • 编辑配置 .env
  • 前言

    因为每个人的前置知识不一样,所以本文不适合其他人作为学习参考。就是自己做个记录,以防忘记。自己电脑一直用的docker环境,但平时也没怎么折腾,今天整理一下。

    如何编译一个镜像?简单的写个hello.c文件,编译成可执行的二进制文件

        #include <stdio.h>
        int main()
        {
            printf("hello docker\n");
        }
    

    编译可执行文件

    gcc -static hello.c -o hello
    

    Dockrefile里的内容

        FROM scratch
        ADD hello /
        CMD ["/hello"]
    

    编译镜像(注意后面有一个 .)

    docker build -t euan/ubuntu-hello .
    

    把容器提交成一个镜像:docker commit 当前运行的容器名 新镜像名:版本号

    docker container ls -a
    docker commit b65e103367bf ubuntu-vim
    

    push 镜像到自己的docker hub上执行

    docker push test/ubuntu-hello:latest 
    

    发现没有权限

    The push refers to repository [docker.io/test/ubuntu-hello]0a5c675bd2fb: Preparing denied: requested access to the resource is denied
        
    查了下原因发现镜像名字要和自己的docker hub帐号名一样
    执行命令改名字
    docker tag 7a07b8c2aa07 euan/ubuntu-hello:latest
    

    再次push

    docker push euan/ubuntu-hello
    The push refers to repository [docker.io/euan/ubuntu-hello]
    0a5c675bd2fb: Pushed
    latest: digest: sha256:b65468652d4d858aa984ac523e35e3b4a8b0eca0e6b5b956b080f5c500b206b1 size: 527
    ubuntu@VM-140-90-ubuntu:~/hello-docker$
    

    二、搭建自己的docker hub

    docker run -d -p 5000:5000 --restart always --name registry registry:2
    
    推送镜像到自己的私有仓
    
    docker push  自己服务器ip地址:5000/php-fpm-7.2
    The push refers to repository [自己服务器ip地址/php-fpm-7.2]
    Get https://自己服务器ip地址/v2/: Service Unavailable
    
    交互式操作镜像。对于很多操作,我们需要进入正在运行的容器里进行一些操作。可以执行以下命令
    
    docker run -it 2434bbb56338 /bin/bash  或
    docker exec -it 2434bbb56338 bash   进入某个容器
    
    删除所有停止运行的容器
    
    sudo docker rm $(sudo docker ps -a -q)
    

    三、docker使用

    ```shell

    1. 配置:docker的守护进行配置文件 /etc/docker/daemon.json

    {  “insecure-registries” : [    “自己服务器ip地址:5000”  ]}

    因为docker镜像会用到本地服务器的镜像库,不支持https请求,所以需要进行以上配置

    1. 配置镜像包

    编辑配置 .env

    WORK_DIR= 代码目录
    MYSQL_DATA_DIR=/data/mysql
    REDIS_DATA_DIR=
    /data/redis
    MC_DATA_DIR=/data/mc
    NGINX_LOG_DIR=
    /data/nginx/log

    配置nginx openresty
    服务解析执行
    docker-compose up -d

    启动docker服务绑定本地host,
    127.0.0.1 test.com127.0.0.1

    3 更新镜像包

    • 更新docker配置文件
    • 执行docker-compose build  重建docker容器
    • 执行docker-compose up -d  启动docker容器

    4.  常用docker命令

    • docker ps  查看所有容器
    • docker exec -it 76e79889f101 bash   进入某个容器
    • docker restart 76e79889f101  重启某个容器
    • docker-compose restart 重启所有容器
      常见问题
      Connection failed: SQLSTATE[HY000] [2002] Connection refused
      host 127.0.0.1改成localhost

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lzdong@foxmail.com

    ×

    喜欢就点赞,疼爱就打赏