docker学习笔记
1 docker环境安装
1.1 安装yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 为yum源添加docker仓库位置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.3 安装docker
yum install docker-ce
1.4 启动docker
systemctl start docker
2 docker镜像常用命令
2.1 搜索镜像
docker search mysql
2.2 查找镜像支持的版本
进入docker hub的官网,地址为:https://hub.docker.com,然后搜索需要的镜像
2.3 下载镜像
docker pull mysql:5.7
2.4 列出镜像
docker images
2.5 删除镜像
指定名称删除镜像:
docker rmi mysql:5.7
指定名称删除镜像(强制):
docker rmi -f mysql:5.7
删除所有没有引用的镜像
docker rmi $(docker images | grep none | awk '{print $3}')
强制删除所有的镜像
docker rmi -f $(docker images)
3 Docker容器常用命令
3.1 新建并启动容器
docker run -p 3306:3306 --name mysql -d mysql:5.7
参数解释
-p 指定端口映射,格式为:hostPort:containerPort
--name选项:指定运行后容器的名字为mysql,之后可以通过名字来操作容器
-d 表示后台运行
3.2 列出运行中的容器
docker ps
3.3 列出所有的容器
docker ps -a
3.4 停止容器
docker stop containerName(containerId)
例如:docker stop mysql or docker stop b417ac5a44b0
3.5 强制停止所有的容器
docker kill containerName(containerId)
例如:docker kill mysql or docker kill b417ac5a44b0
3.6 启动停止的容器
docker start containerName(container)
例如:docker start mysql docker start b417ac5a44b0
3.7 进入容器
先查询出容器的pid
docker inspect --format "{{.State.Pid}}" $ContainerName(或者$ContainerId)
根据容器的pid进入容器
nsenter --target 11239 --mount --uts --ipc --net --pid
3.8 删除容器
删除指定容器
docker rm $ContainerName(或者$ContainerId)
按名称删除容器
docker rm `docker ps -a | grep mysql* | awk '{print $1}'`
强制删除所有的容器
docker rm -f $(docker ps -a -q)
3.9 查看容器的日志
查看当前容器日志
docker logs containerName(containerId)
动态查看当前容器日志
docker logs containerName(containerId) -f
4.0 查看容器的ip地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' containerName(containerId)
4.1 修改容器的启动方法
docker container update --restart=always $ContainerName
4.2 启动容器时指定时区
docker run -p 80:80 --name nginx \ -e TZ="Asia/Shanghai" \ -d nginx:1.17.0
4.3 在宿主机查看docker容器 cpu,内存,网络,io使用情况
查看指定容器情况
docker stats containerName(containerId)
- 查看所有容器情况
docker stats -a
查看docker 磁盘使用情况
docker system df
4.4 进入docker容器内部的bash
docker exec -it $ContainerName /bin/bash
使用root账户进入docker容器内部的bash
docker exec -it --user root $ContainerName /bin/bash
4.5 创建外部网络
docker network create -d bridge my-bridge-network
4.6 修改docker镜像存放的位置
- 查看docker镜像存放的位置
docker info | grep "Docker Root Dir"
- 关闭docker服务
systemctl stop docker
- 移动目录到目标路径
mv /var/lib/docker /mydata/docker
- 建立软链接
ln -s /mydata/docker /var/lib/docker