CasperG's Blog

Some People choose to see the ugliness in the world, the disarray. I choose to see the beauty.

docker部署命令详解

docker部署命令详解


一、安装docker

  1. 卸载旧版本docker
    1
    sudo apt-get remove docker docker-engine docker.io
  2. 安装docker
    1
    2
    sudo apt update
    sudo apt install docker-ce
  3. 安装docker-compose
    1
    2
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    卸载docker-compose
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sudo rm /usr/local/bin/docker-compose
    ```

    #### 二、docker命令
    1. 启动服务相关
    ```shell
    # 启动docker
    sudo service docker start

    # 停止docker
    sudo service docker stop

    # 重启docker
    sudo service docker restart
  4. 镜像相关
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 列出镜像
    sudo docker image ls

    # 拉取镜像
    sudo docker image pull library/hello-world #docker库内
    sudo docker image pull hello-world

    # 删除镜像
    sudo docker image rm hello-world

    # 打包(将镜像打包为文件)
    sudo docker save -o [保存的文件名] [镜像名]

    # 如:
    sudo docker save -o ./ubuntu.tar ubuntu

    # 加载
    sudo docker load -i ./ubuntu.tar
  5. 容器相关
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    # 创建容器(创建后运行)
    sudo docker run [option] [镜像名] [向启动容器中传入的命令]

    # 可选参数
    -i # 表示以“交互模式”运行容器
    -t # 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
    --name # 为创建的容器命名
    -v # 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
    -d # 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
    -p # 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
    -e # 为容器设置环境变量
    --network=host # 表示将主机的网络环境映射到容器中,容器的网络与主机相同(不能与-p同时使用)

    # 交互式容器(可在终端控制台使用命令)
    sudo docker run -it --name=myubuntu ubuntu /bin/bash

    # 守护式容器(长期运行不停止)
    sudo docker run -dit --name=myubuntu2 ubuntu

    # 进入已运行的容器
    sudo docker exec -it [容器名或容器id] [进入后执行的第一个命令]
    sudo docker exec -it nginx /bin/bash

    # 列出正在运行的容器
    sudo docker container ls

    # 列出全部容器
    sudo docker container ls --all

    # 停止一个已经在运行的容器
    sudo docker container stop [容器名或容器id]

    # 启动一个已经停止的容器
    sudo docker container start [容器名或容器id]

    # kill掉一个已经在运行的容器
    sudo docker container kill [容器名或容器id]

    # 删除容器
    sudo docker container rm [容器名或容器id]

    将容器打包为镜像
    1
    sudo docker commit [容器名] [镜像名]
    从docker容器中导入/导出文件
    1
    2
    3
    4
    5
    # 从容器导出
    docker cp [容器ID]:[source] [destination]

    #导入容器
    docker cp [source] [容器ID]:[destination]

三、dockerhub

dockerhub是一个用于保存docker镜像的仓库,类似于Github。

  1. 登录和退出
    1
    2
    docker login
    docker logout
  2. 拉取镜像
    1
    2
    3
    4
    5
    # 在官方仓库搜索镜像
    docker search xxx

    # 拉取镜像
    docker pull xxx
  3. 推送镜像到在线仓库
    1
    2
    3
    #示例:镜像mynginx
    docker tag mynginx:v1 username/mynginx:v1 #打上gurh16的tag
    docker push username/mynginx:v1
    注意:一定要先给镜像打tag,再推送!

参考内容: Ubuntu安装docker-吉吉博客