DockerDocker
📼

Docker

Last edited time
Nov 16, 2021 06:46 AM
Created
May 9, 2020 01:24 AM
Tags

卸载

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

安装

自动脚本

curl -fsSL https://get.docker.com -o get-docker.sh
DRY_RUN=1 sh ./get-docker.sh # DRY_RUN 显示详细命令
 

Image&Container

#! image

#列出本机所有image文件
docker image ls

#删除image
docker image rm {image_name}

#拉取image到本地
docker image pull {image_group_name}/{image_name}
docker image pull {image_name} #image_group_name = library

#! container

#运行image
#会自动抓取image文件到本机
docker container run --rm -p {container_port}:{self_machine_port} -i -t {image_name}:{image_tag} {first_command}
#--rm 容器终止运行后自动删除容器
#-p 映射端口
#-i 即使没有附加也保持STDIN 打开
#-t 分配一个伪终端
#{first_command} 容器启动后内部第一个执行的命令,常用:/bin/bash 保证用户可以用shell

#容器列表
docker container ls
docker container ls --all #包括终止运行的容器

#停止容器
docker container stop {container_id}

#终止容器
docker container kill {container_id} #强制停止

#删除容器
docker container rm {container_id}

#启动已停止的容器
docker container start {container_id}

#查看容器输出
docker container logs {container_id}

#在运行的容器中执行命令
docker container exec {options} {container_id} {shell_command}
#-d :分离模式: 在后台运行
#-i :即使没有附加也保持STDIN 打开
#-t :分配一个伪终端 

#从容器中拷贝文件
docker container cp {source_path}:{target_source}

docker attach {container_id}

.dockerignore&Dockerfile

#! ./.dockerignore

.git
# ....
#! ./Dockerfile

#继承image文件
FROM {image_name}:{image_tag}

#复制文件到image中
COPY {source_path} {target_path}

#指定接下来的工作路径
WORKDIR {work_path}

#构建image时执行的命令
RUN {shell_command}
RUN ......

#设置环境变量(dockfile命令),用于RUN等命令展开
ENV <key>=<value>

#设置环境变量(构建环境),用于FORM
ARG <key>=<value>

#暴露端口(仅用作声明容器会用什么端口)
EXPOSE {port}

#容器运行后执行的命令,只能有一个
CMD {shell_command}

#定义匿名卷
VOLUME <路径>
#构建image文件
docker image build -t {image_name}:{image_tag} {source_path}
#iamge_tag默认为

docker.com

#docker登录
docker login

#标注image
docker image tag {iamge_name}:{iamge_tag} {username}/{image_name}:{image_tag}

#发布image
docker image push {username}/{image_name}:{image_tag}

未整理

docker run -tdi --privileged=true centos init

docker attach

docker commit {container_id} {image_name}:{image_tag}
 

openwrt

docker network create -d macvlan --subnet=172.16.60.0/24 --gateway=172.16.60.254 --ipv6 --subnet=fe80::/16 --gateway=fe80::1 -o parent=eth0 -o macvlan_mode=bridge openwrt-LAN

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.254 --ipv6 --subnet=fe81::/16 --gateway=fe81::1 -o parent=ens34 -o macvlan_mode=bridge openwrt-WAN

docker run -it -d --network openwrt-LAN --privileged --name openwrt lede:test /sbin/init
 

Network

docker network create -d bridge --internal=true openwrt-LAN
 

Loading Comments...