一. 安装Docker
1. 安装与卸载
$cat /etc/os-release #查看版本信息
1. Uninstall old versions
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装package
$ sudo yum install -y yum-utils
3. 设置仓库的镜像
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 安装docker社区版
$ sudo yum install docker-ce docker-ce-cli containerd.io
5. Start Docker
$ sudo systemctl start docker
6. Docker version
$ docker version
7. Verify Docker
$ sudo docker run hello-world
8. 查看Docker 镜像
$ docker images
9.卸载Docker 社区版
$ sudo yum remove docker-ce docker-ce-cli containerd.io
10.卸载所有
$ sudo rm -rf /var/lib/docker # /var/lib/docker docker工作路径
$ sudo rm -rf /var/lib/containerd
2. 阿里云镜像加速
- 容器镜像服务
- 镜像加速器
- 配置
- 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
#这个加速器是指的是阿里云的机器从内部访问他的镜像服务器,正常都是从公网访问的,所以如果你是本地的机器,用不了。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rpr2syxw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二. Run流程与Docker原理
1. 流程
$ sudo docker run hello-world 执行后发生的事
流程图:
2. 底层原理
Docker 是一个C-S 结构, 通过Socker连接 , DockerClinet 向DockerServer访问
3. 为什么比VM快
- 更少的抽象性
- docker利用宿主机的内核, vm需要Guest OS
三. Docker常用命令
1. 镜像命令
docker version #显示docker的版本信息
docker info #显示docker 系统信息
docker 命令 --help #查询所有命令
查看images
docker images --help
搜索docker
docker search file --filter=STEAR>3000
下载镜像
docker pull
删除镜像
docker rmi -f
docker rmi -f $(docker images -aq) 递归删除所有images
docker pull
2. 容器命令
有镜像才能有容器.
1. 新建容器并启动
docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01用来区分容器
-d 后台方式运行
-it 使用交互方式运行
-P 指定容器的端口,
-p 随机指定端口
例子:
进入容器:
docker run -it centos /bin/bash
退出容器
exit
2. 列出所有运行的容器
docker ps
-a #列出当前正在运行的容器 + 带出历史运行的容器
-n=1 #显示最近一个容器
-q #只显示容器的编号
3. 退出容器
exit #直接退出容器并退出
ctrl + P + Q #退出容器, 容器不退出
4. 删除容器
docker rm 容器id #删除指定容器, 不能删除正在运行的程序
docker rm -f $(docker ps -aq) #全部删除容器
docker ps -a -q|xargs docker rm #全部删除容器
5. 启动和停止容器的操作
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id #强制停止容器
3. 其他常用命令
1. 命令 docker run -d 镜像名
docker run -d centos
#问题docker ps 发现centos 停止了, 常见的坑, docker使用后台运行,
#必须要有一个前台进程, docker发现没有应用, 就会自动停止
#nginx 容器启动后, 发现自己没有提供服务, 就会立刻停止, 就是没有程序了
2. 查看日志
docker logs
docker logs -tf --tail 10 eec72a399dd7 #显示10条日志
3. 查看容器中进程信息
docker top id
4. 查看镜像元数据
docker inspect id
4. 进入当前正在运行的容器
# 我们通常容器都是使用后台方式运行, 需要进入容器, 修改一些配置
#命令
1. 进入容器
方式一: # 进入容器后开启一个新的终端
docker ps
docker exec -it 容器id /bin/bash
方式二: # 进入容器正在执行的终端, 不会产生新的终端
docker attach 容器id
2. 在容器中创建文件
touch test.java
3. 从容器中拷贝到主机上
docker attch 容器id
docker cp 容器id:/home/test /home (容器id:/home/test)容器内文件路径 (/home/)将文件存入主机位置