docker安装
- 卸载旧版本的docker
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine - 安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 - 指定仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 安装docker-ce
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker - 启动docker
systemctl start docker
systemctl stop docker - 查看docker可用的版本号
yum list docker-ce --showduplicates | sort -r - 运行hello-world示例程序
sudo docker run hello-world - 开机自启动docker(8,9,10,11适用于使用yum安装的各种服务)
systemctl enable docker - 关闭自启动
systemctl disable docker - 查看已经设置开机自启动的服务
systemctl list-unit-files | grep enable - 查看正在运行的服务
systemctl list-units --type=service - 已经启动的项目,则使用update更新:
docker update --restart=always container_id - 查看容器运行状态
docker inspect --format '{{.State.Running}}' - 查看docker版本
docker -v - 删除孤立的容器
docker container prune - 删除孤立的镜像
docker image prune -a - 直接启动(常用于测试,可以立即看到错误日志信息)
dockerd - 查看容器目录和版本,很多指令和宿主一样
cat /proc/version和ls - docker卸载
yum list installed|grep docker
yum remove -y containerd.io.x86_64
yum remove -y docker-ce.x86_64
yum remove -y docker-ce-cli.x86_64
rm -rf /var/lib/docker
rm -rf /var/run/docker
rm -rf /var/run/docker.sock - 查询指定名称的容器
docker ps -a| grep <name> - 查看容器的进程
docker top <container_id> - 容器的资源监控,限制
docker stats <container_id> - 查看资源使用情况
docker system df - 查看每个容器的资源使用情况
docker system df -v - 给运行中的docker容器添加新的端口
docker inspectcontainer_name
| grep IPAddress # 获取容器ip
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 # iptable转发端口 - docker默认安装位置
/var/lib/docker,日志文件在/var/lib/docker/containers//-json.log
docker官方镜像
docker国内镜像
https://docker.mirrors.ustc.edu.cn
切换镜像
vi /etc/docker/daemon.json
在文件中写入:
建议使用阿里的镜像:https://9cpn8tt6.mirror.aliyuncs.com
{
"registry-mirrors":["https://9cpn8tt6.mirror.aliyuncs.com"]
}
然后重启进程:
systemctl daemon-reload
systemctl restart docker
安装docker-compose
第一种方式:
- mkdir /usr/local/aicp/docker-compose_entry
- 复制docker-compose-Linux-x86_64二进制到上面新建的目录,然后重命名为docker-compose
- 创建软连接:sudo ln -s /usr/local/aicp/docker-compose_entry/docker-compose /usr/bin/docker-compose
- 验证是否安装成功:docker-compose --version
快捷方式:
curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
查看日志
docker logs 2b1b7a428627
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
导出日志:
docker logs --since='2020-04-16' CONTAINER_ID >> fileName.log
docker logs --since 30m CONTAINER_ID >> fileName.log
查询docker下的所有容器
docker ps -a
停止容器
docker stop 9d0fd158d060
启动容器
docker start 9d0fd158d060
重启容器
docker restart bff8097388ac
重新进入容器【运行容器】
docker attach 9d0fd158d060
进入容器【强烈建议使用】
docker exec -it 8b1be6ce3381 /bin/bash
进入容器之后查看当前目录
pwd
导出容器
docker export 9d0fd158d060 > rabbitmq.tar
导入容器快照
cat rabbitmq.tar | docker import - test/rabbitmq:v1
删除容器
docker rm -f 9d0fd158d060
删除指定名称前缀的容器
docker rm -f 1}')
删除所有容器
docker rm -f 1}')
查看容器内进程
docker top 9d0fd158d060
查看容器运行状态
docker inspect 9d0fd158d060
查看docker所有镜像
docker images
删除镜像
docker rmi ff5975823ba2
查找指定名称的镜像
docker images | grep "10.106.11.152:30280/industry.net.cloud/*" | awk '{print $3}'
删除指定前缀的所有镜像
docker rmi 3}')
删除tag为none的镜像
docker rmi 3}')
查看docker网关
docker network ls
创建docker网关
docker network create "name"
删除docker网关
docker network rm "name"
docker部署jar包
1.使用mvn clean package生成jar包,并放到服务器指定目录
2.创建Dockerfile文件,并放到上述同一个目录
FROM openjdk:8
MAINTAINER kaka
ADD access-0.0.1-SNAPSHOT.jar access.jar
EXPOSE 8080
ENTRYPOINT ["java","-Xms800m","-Xmx800m","-XX:MaxNewSize=512m","-jar","-Duser.timezone=GMT+8","access.jar"]
3.执行命令,构建docker镜像【.表示Dockerfile文件在当前目录】
docker build -t access:0619 .
4.启动容器
docker run -d --restart=always --name access -p 8080:8080 access:0615
docker run -d --restart=always --cap-add=SYS_PTRACE -v /etc/hosts:/etc/hosts --name access -p 30010:30010 access:0224
- 使用docker安装的java程序,无法使用jstat等jvm工具(提示pid not found)
直接进入容器内部使用相关工具即可。 - 在docker容器内部使用 jmap -heap pid,提示Operation not permitted
docker run --cap-add=SYS_PTRACE ...
docker compose安装
1.下载安装包
2.chmod +x /usr/local/aicp/docker_compose_entity/docker-compose
3.创建软链接:ln -s /usr/local/aicp/docker_compose_entity/docker-compose /usr/bin/docker-compose
4.测试是否安装成功:docker-compose --version
docker日志默认存储路径
/var/lib/docker/containers/容器ID/local-logs/
docker网络管理
docker network create backend
docker network create frontend
docker run -it --name container1 --net backend busybox
docker run -it --name container2 --net backend busybox
docker run -it --name container3 --net frontend busybox
docker network connect frontend container2
docker desktop
镜像文件存在虚拟硬盘中:C:\Users\程良普\AppData\Local\Docker\wsl
安装Docker后内网ip不通?Docker修改Docker0网桥默认ip的方法
https://cloud.tencent.com/developer/article/1607726
echo {"bip":"172.18.0.1/16"} >> /etc/docker/daemon.json