重新认识一下Docker

1.Docker容器化技术

Docker容器化技术,一般运行在linux系统中,目前windos/mac/linux都可以运行了,下述说明均在linux/centos系统下,相关信息

[root@1 conf]# uname -a
Linux 1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@1 conf]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

2.Linux下软件Docker服务

docker在linux上作为一个软件服务,查看docker服务运行状态

[root@2 system]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-30 01:38:50 CST; 1 weeks 6 days ago
     Docs: https://docs.docker.com
 Main PID: 30483 (dockerd)
    Tasks: 99
   Memory: 1007.6M
   CGroup: /system.slice/docker.service
           ├─14873 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9627 -container-ip 172.18.0.5 -container-port 9627
           ├─14879 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9627 -container-ip 172.18.0.5 -container-port 9627
           └─30483 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.Docker info 基本信息

[root@2 system]# docker info
Client:
 Context:    default

Server:
 Containers: 6 #容器6个
  Running: 4 #运行4个
  Paused: 0 #暂停0个
  Stopped: 2 #停止2个
 Images: 12 #镜像12个
 Server Version: 20.10.8 
  # 日志驱动类型
 Logging Driver: json-file 
 Cgroup Driver: cgroupfs
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64  
 # docker服务运行时存放镜像/容器/挂载的根目录
 Docker Root Dir: /home/data/lib/docker/docker
 Registry Mirrors: https://xxxxxx.mirror.aliyuncs.com/

4.Daemon.json

docker的配置文件

[root@2 system]# cat /etc/docker/daemon.json 
{
	 "registry-mirrors":["https://xxxxx.mirror.aliyuncs.com"],
	 "data-root":"/home/xxx/docker",
	 "log-opts": {
		"max-file":"5",
		"max-size":"500m"
	}
}
keyvalue
registry-mirrors镜像加速代理
data-rootdocker服务运行时存放镜像/容器/挂载的根目录
log-opts:max-file日志项,最大日志文件个数,5
log-opts:max-size日志项,单个日志文件最大容量,500M

某容器下的内容,日志文件个数和大小均生效

[root@1 a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a]# ll -h
total 1.5G
-rw-r----- 1 root root 6.6M Oct 13 16:13 a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a-json.log
-rw-r----- 1 root root 477M Oct 13 00:49 a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a-json.log.1
-rw-r----- 1 root root 477M Oct  5 22:25 a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a-json.log.2
-rw-r----- 1 root root 477M Oct  3 05:49 a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a-json.log.3
drwx------ 2 root root 4.0K Sep 30 13:20 checkpoints
-rw------- 1 root root 4.5K Oct  9 11:25 config.v2.json
-rw-r--r-- 1 root root 1.7K Oct  9 11:25 hostconfig.json
-rw-r--r-- 1 root root   13 Oct  9 11:25 hostname
-rw-r--r-- 1 root root  175 Oct  9 11:25 hosts
drwx-----x 2 root root 4.0K Sep 30 13:20 mounts
-rw-r--r-- 1 root root   82 Oct  9 11:25 resolv.conf
-rw-r--r-- 1 root root   71 Oct  9 11:25 resolv.conf.hash

5.docker run --help

docker run -d --name ${SERVICE_NAME} -p ${MYSQL_MOUNT_PORT}:${MYSQL_PORT} -v ${CURRENT_DIR}/../../../conf/my.cnf:/etc/mysql/my.cnf  -v ${CURRENT_DIR}/data:/var/lib/mysql -v ${CURRENT_DIR}/sql:/docker-entrypoint-initdb.d -v /etc/localtime:/etc/localtime:ro 
--network ${SLS_NETWORK} --network-alias ${SERVICE_NAME} --restart=always -e MYSQL_DEFAULT_USER=${USERNAME} -e MYSQL_ROOT_PASSWORD=${PASSWORD} ${MYSQL_IMAGE_NAME}:${VERSION}
[root@1 /]# docker run --help
Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
Options:
  -d, --detach                         Run container in background and print container ID(后台运行并打印容器id)
  -e, --env list                       Set environment variables(设置环境变量)
  -i, --interactive                    Keep STDIN open even if not attached(保持标准输入打开)
      --name string                    Assign a name to the container(给容器取一个名称)
      --network network                Connect a container to a network(运行的这个容器去连接那个网络)
      --network-alias list             Add network-scoped alias for the container(为这个容器添加一个网络服务别名)
  -p, --publish list                   Publish a container's port(s) to the host (端口映射)
      --restart string                 Restart policy to apply when a container exits (default "no") (容器退出时是否重启应用)
  -t, --tty                            Allocate a pseudo-TTY(分配一个伪TTY)
  -v, --volume list                    Bind mount a volume(挂载 宿主机目录:容器内目录)

6.docker inspect NAME|ID

inspect vt.检查;查看;审视;视察
该命令罗列指定容器的所有信息,限于篇幅有限,移除了部分内容

[root@1 /]# docker inspect sls-gateway
[
    {
        "Id": "a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a",
        "Created": "2021-09-30T05:20:31.685778388Z",
        "Path": "sh",
        "Args": [
            "-c",
            "java -Duser.timezone=GMT+08 -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /sls/${jar_name} ${params}"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Pid": 29336,
            "ExitCode": 0,
            "StartedAt": "2021-10-09T03:25:06.381622663Z",
            "FinishedAt": "2021-10-09T03:25:05.988470522Z"
        },
        "Image": "sha256:b30ef97274530a7cb3303aaa19a232370dc3ea3a84e613a1e6ca59bdf243904e",
        "LogPath": "/home/data/lib/docker/docker/containers/a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a/a37c20ee003b6185e75a28e04c55b9a671f4b9a610953de25a0b535584c1ab0a-json.log",
        "Name": "/sls-gateway",
        "Platform": "linux",
        "HostConfig": {
            "Binds": [
                "/home:/home",
                "/etc/localtime:/etc/localtime:ro",
                "/home/sls-dev/installer/docker/sectag/center/sls-gateway/../jar:/sls"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "5",
                    "max-size": "500m"
                }
            },
            "NetworkMode": "sls-network",
            "PortBindings": {
                "9528/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "9528"
                    }
                ]
            },
        "GraphDriver": {
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/etc/localtime",
                "Destination": "/etc/localtime",
                "Mode": "ro",
                "RW": false,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/sls-dev/installer/docker/sectag/center/jar",
                "Destination": "/sls",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rslave"
            }
        ],
        "Config": {
            "Hostname": "a37c20ee003b",
            "Env": [
                "jar_name=sls-gateway-2.2.1.1.jar",
                "params=--server.ip=172.1.0.1 --server.port=9528 --eureka.ip=sls-server                --eureka.port=9527 --spring.rabbitmq.host=sls-rabbitmq --spring.rabbitmq.port=5672                --spring.rabbitmq.username=admin --spring.rabbitmq.password=11111111  --license.path=/home/test/installer/docker/sectag/center/sls-gateway/license.dat",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin",
                "LANG=C.UTF-8",
                "JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk",
                "JAVA_VERSION=8u212",
                "JAVA_ALPINE_VERSION=8.212.04-r0"
            ],
            "Cmd": [
                "sh",
                "-c",
                "java -Duser.timezone=GMT+08 -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /sls/${jar_name} ${params}"
            ],
            "Image": "sls-gateway:2.2.1.1",
            "WorkingDir": "/sls",
        },
        "NetworkSettings": {
            "Ports": {
                "9528/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "9528"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "9528"
                    }
                ]
            },
            "Networks": {
                "sls-network": {
                    "Aliases": [
                        "sls-gateway",
                        "a37c20ee003b"
                    ],
                    "NetworkID": "826c8d5fa07ccf95394cdae761a9e83170bc68a609e74114c7e78d1425e7049d",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.13",
                }
            }
        }
    }
]

7.Docker 命令帮助

# 先查看docker的所有命令
[root@1 /]# docker --help
# 再选择一个命令查看该命令下的用法
[root@1 /]# docker system --help
[root@1 /]# docker run --help
[root@1 /]# docker builder build --help
[root@1 /]# docker network inspect --help
# 这样你就能学习其所有命令用法了 
# 类似 linux下的 man COMMAND
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值