falcon
发布于 2023-11-20 / 369 阅读
0

docker相关

centos7安装docker

docker安装

#安装docker
yum -y install yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum -y install docker-ce docker-ce-cli containerd.io

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://自己的阿里云.mirror.aliyuncs.com"],
  "log-opts": {
    "max-size": "10m",
    "max-file":"3"
  },
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#刷新配置
systemctl daemon-reload
#开机自启动
systemctl enable docker
systemctl restart docker

docker-compose安装

#yum安装 版本不是最新
yum install -y epel-release
yum install docker-compose
#或者 下载最新手动安装
curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#看是否安装成功
docker-compose -v

非root用户使用dacker

#将自己加入用户组
sudo gpasswd -a $USER docker
reboot

#优先推荐上面的方式
#创建docker用户组
sudo groupadd docker

#sudo usermod -aG docker $USER
#刷新用户组
newgrp docker 
#测试
docker run hello-world

docker基础命令

docker update --restart=always <Container ID>
docker search --limit 5 redis                    #搜索镜像 只展示前五条
docker pull redis:6.0                            #拉取redis  6.0版本镜像
docker images                                    #查看本地所有镜像
docker ps                                        #查看所有正在运行的容器,加-q返回id
docker ps -a                                     #查看所有容器,加-q返回id
docker rmi ${IMAGE NAME/ID}                      #删除镜像
docker rm ${CONTAINER NAME/ID}                   #删除容器
docker save ${IMAGE NAME} > ${FILE NAME}.tar     #将镜像保存成文件
docker load < ${FILE NAME}.tar                   #从文件加载镜像
docker start ${CONTAINER NAME/ID}                #运行一个以前运行过的容器
docker stop ${CONTAINER NAME/ID}                 #停止一个正在运行的容器
docker logs ${CONTAINER NAME/ID}                 #显示运行容器的日志
docker top 容器ID/名称                           #查看容器内运行的进程   
docker run...                                    #运行一个容器
    --name ${container name}                          #设置容器名称
    -p ${host port}:${container port}                 #映射主机和容器内的端口
    -e ${env name}=${env value}                       #添加环境变量
    -d                                                #后台运行
    -v ${host folder path}:${container folder path}   #将主机目录挂在到容器内
    -it                                               #前台交互式启动do
    --privileged=true   #如果出现cannot open directory .: Permission denied解决办法:在挂载目录后多加一个--privileged=true参数即可 

docker高级命令

# Advance use 
docker cp /www/runoob 96f7f14e99ab:/www/                       #将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
#将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
docker cp /www/runoob 96f7f14e99ab:/www
#将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp  96f7f14e99ab:/www /tmp/
docker ps -f "status=exited"                                   #显示所有退出的容器
docker ps -a -q                                                #显示所有容器id
docker ps -f "status=exited" -q                                #显示所有退出容器的id
docker restart $(docker ps -q)                                 #重启所有正在运行的容器
docker stop $(docker ps -a -q)                                 #停止所有容器
docker rm $(docker ps -a -q)                                   #删除所有容器
docker rm $(docker ps -f "status=exited" -q)                   #删除所有退出的容器
docker rm $(docker stop $(docker ps -a -q))                    #停止并删除所有容器
docker start $(docker ps -a -q)                                #启动所有容器
docker rmi $(docker images -a -q)                              #删除所有镜像
docker exec -it ${CONTAINER NAME/ID} /bin/bash                 #进入容器内
docker exec -it ${CONTAINER NAME/ID} ping ${CONTAINER NAME/ID} #一个容器ping另外一个容器
docker top ${CONTAINER NAME/ID}                                #显示一个容器的top信息
docker stats                                                   #显示容器统计信息(正在运行)
docker stats -a                                            #显示所有容器的统计信息(包括没有运行的)
docker stats -a --no-stream                                #显示所有容器的统计信息(包括没有运行的) ,只显示一次
docker stats --no-stream | sort -k8 -h                     #统计容器信息并以使用流量作为倒序
docker system 
docker system df           #显示硬盘占用
docker system events       #显示容器的实时事件
docker system info         #显示系统信息
docker system prune        #清理文件
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名] #创建新镜像
#docer登陆
$ docker login --username=zhows http://47.110.145.204:8084
docker login -u zhows -p Zhows19870515 http://47.110.145.204:8084
#导出镜像
docker export 8ba3f9c34a1f > /home/falcon/imagejdk8.tar

docker build -t runoob/ubuntu:v1