Docker学习&应用-基础命令


Docker学习&应用-基础命令

Published on August 02, 2023 by Andersen

docker 常用命令

4 min READ

On This Page

docker安装

macOs

macOs直接安装桌面版即可.docker官网

linux

linux直接使用apt安装,简单高效

apt install docker

镜像获取

可以通过docker hup来查询相关应用包,然后拉取相关镜像.官方镜像仓库

通过命令pull便可拉取镜像到本地,如:docker pull nacos/nacos-server:v2.2.3

docker常用命令

容器启动相关

示例:

sudo docker run -d -p 8848:8848 \
--restart=always\
--name nacos \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=192.168.3.3 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_DB_NAME=nacos_config \
--env MYSQL_SERVICE_USER=123 \
--env MYSQL_SERVICE_PASSWORD=123@ \
-v /home/docker/nacos/logs:/home/nacos/logs \
nacos/nacos-server:latest
  • docker run:启动容器
  • name:容器名称
  • -d:后台运行
  • -p:端口映射
  • --restart=always:容器随docker启动自动运行
  • env:容器环境变量
  • -v:挂载宿主机目录,将宿主机目录跟容器目录映射
  • nacos/nacos-server:latest:容器启动所使用的镜像
  • --privileged=true:对容器赋予主机上的权限

docker环境相关

命令

  • docker network inspect bridge:查看docker默认的桥接网络详细信息,显示有关桥接网络的相关配置/容器连接到该网络的信息及网络中的子网和网关信息.主要用来确定网关信息,从容器中连接宿主机的服务,比如:容器A需要连接容器B的服务可以使用Gatewayip通过宿主机来连接对应端口提供的服务

示例:

[
    {
        "Name": "bridge",
        "Id": "abcdef123456",
        "Created": "2023-08-01T10:20:30.000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "abcdef1234567890": {
                "Name": "container1",
                "EndpointID": "abcdef1234567890",
                "MacAddress": "01:23:45:67:89:ab",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "1234567890abcdef": {
                "Name": "container2",
                "EndpointID": "1234567890abcdef",
                "MacAddress": "ab:cd:ef:12:34:56",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

  • docker login harbor.xxx.com:登录指定镜像仓库
  • docker logout harbor.xxx.com:退出并删除指定仓库认证
  • docker images:查看所有镜像
  • docker rmi xxx:v1:删除指定镜像
  • docker rm -f xxx:删除指定容器
  • docker tag xxx harbor.xxx.com/xxx:v1:标记镜像
  • docker push harbor.xxx.com/xxx:v1:推送镜像到指定镜像仓库
  • docker pull harbor.xxx.com/xxx:v1:从指定镜像仓库拉取

构建docker镜像

示例

docker build --platform linux/amd64 --no-cache -t test:v2 . 
  • docker build:构建镜像
  • --platform <平台名>:指定运行平台
  • --no-cache:构建时不使用缓存
  • -t:构建镜像并创建tag
  • test:v2:test为镜像名 v2为tag
  • .:从当前路径下查找dockerfile