docker 安装
# 1.卸载docker旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4.更新yum软件包索引
yum makecache fast
# 5.安装docker docker-ce社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io
# 6.启动docker
systemctl start docker
# 7.docker run hello-world
如果看到 Hello from Docker!则说明安装成功
# 8.查看一下下载的docker镜像
dokcer images
删除docker
#1.卸载依赖
yum remover docker-ce docker-ce-cli containerd.io
#2.删除资源
rm -rf /var/lib/docker
配置镜像加速器
进入到自己的阿里云服务器,输入如下代码(registry-mirrors 输入你们自己的)
底层原理
docker是怎么工作的?
docker 是一个Client - Server结构的系统, docker的守护进程运行在主机上,通过Socket从客户端访问。
DockerServer接收到DokcerClient的指令,就会执行这个命令。
docker 镜像常用命令
#1.查看所有镜像
docker images
#2.搜索镜像,例如搜索mysql
docker search mysql
--filter=stars=3000 #找到收藏数大于3000的镜像
#3.删除镜像,一般可以先查看镜像,然后通过镜像Id去删
docker rmi -f 镜像Id
docker rmi -f $(docker images aq)
doceker run -it centos/bin/bash
容器命令
docker run centos /bin/bash
exit #退出
ctrl + p + q #容器不停止退出
docker ps #查看正在运行的容器
docker ps -a #查看当前和曾经运行的容器
docker ps -a -n=2 #查看最近和曾经运行的容器,最近的2条
删除容器
docker rm 容器id
docker rm $(docker ps -aq) #删除所有的容器
启动和停止容器操作
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
docker 常用其他命令
后台启动容器
docker run -d 镜像名
#常见的坑,docker 容器后台运行, 就必须要有一个前台进程,docker 发现没有应用,就会自动停止
查看日志
dokcer logs
docker logs -tf --tail 10 容器id 显示10条日志
-tf 显示时间戳并持续输出
--tail 10 显示10条日志
查看容器中进程信息
docker top 容器id
进入当前正在运行的容器
docker exec -it 容器id /bin/bash
docker attach 容器id #进入正在运行的容器,不会开启新的进程
拷贝出docker中的文件
#1.把docker中的文件拷贝到主机中
docker cp 容器id:容器内路径 主机路径
Docker安装nginx
[root@spaserby ~]# docker pull nginx
[root@spaserby ~]# docker run -d --name nginx01 -p 3344:80 nginx
# -d 后台运行
# --name 给容器起名
# -p 宿主机端口
docker 安装tomcat
#官方的使用
docker run -it --rm tomcat:9.0
#我们之前都是后台使用,停止容器后还能看的见,上面是官方推荐,测试用的方法,用完即删除
[root@spaserby ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edc0e8b02f23 nginx "/docker-entrypoint.…" 23 minutes ago Up 23 minutes 0.0.0.0:3344->80/tcp nginx01
4230a373422a centos "/bin/bash" 31 hours ago Exited (0) 31 hours ago nostalgic_knuth
[root@spaserby ~]# docker pull tomcat:9.0
[root@spaserby ~]# docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0
[root@spaserby ~]# docker exec -it tomcat01 /bin/bash
# 进入容器后发现 由于阿里云拉过来的都是最小镜像,webapps 文件夹为空,所以我们可以把webapps.dist中的内容复制过来
root@5924d3881586:/usr/local/tomcat# cp -r webapps.dist/* webapps
#查看内存占用
docker status