# 1、需要的安装包 yum install -y yum-utils # 2、配置国内镜像地址 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3、更新yum软件包索引 yum makecache fast # 4、安装社区版docker yum install docker-ce docker-ce-cli containerd.io # 5、启动docker systemctl start docker # 6、查看docker版本 docker version # 7、下载镜像 docker pull hello-world # 8、运行镜像 docker run hello-world
# 1、卸载依赖 yum remove docker-ce docker-ce-cli containerd.io # 2、删除资源 rm -rf /var/lib/docker # /var/lib/docker为docker的默认工作路径二、阿里云加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://j6yjzbk6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、底层工作原理
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,并通过Socket从客户端访问。
DockerServer接收到Docker-Client的指令,就会执行该指令。
四、镜像命令docker --version # 显示docker的版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker command --help # 帮助命令
[root@localhost /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 5 months ago 13.3kB REPOSITORY # 镜像的仓库源 TAG # 镜像的标签 IMAGE ID # 镜像的id CREATED # 镜像的创建时间 SIZE # 镜像的大小 # 可选项 -a # all,列出所有镜像 -q # quiet,只显示镜像的id
搜索镜像
[root@localhost /]# docker search mysql NAME DESCRIPTION STARS mysql/mysql-server Optimized MySQL Server Docker images. Create… 907 centos/mysql-57-centos7 MySQL 5.7 SQL database server 92 mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 92 bitnami/mysql Bitnami MySQL Docker Image 64 docker search mysql --filter=STARS=3000 # 过滤STARS大于3000的镜像
拉取镜像
docker pull mysql # 如果不加tag,则默认下载latest版 docker pull imageName[:tag] # tag指定版本号 [root@localhost /]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d5d7efb64e: Pull complete ac563158d721: Pull complete d2ba16033dad: Pull complete 688ba7d5c01a: Pull complete 00e060b6d11d: Pull complete 1c04857f594f: Pull complete 4d7cfa90e6ea: Pull complete e0431212d27d: Pull complete Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest
删除镜像
docker rmi -f imageName # 通过镜像名或镜像id删除 docker rmi -f $(docker iamges -aq)五、容器命令
docker ps # 列出当前正在运行的所有容器 -a # 列出当前正在运行的所有容器+历史运行过的容器 -n=? # 显示最近创建的容器 -q # 只显示容器的编号 exit # 退出容器 docker rm 容器id # 删除容器 docker rm -f $(docker ps -aq) # 方式一:删除所有容器 docker rm -a -q|xargs docker rm # 方式二:删除所有容器
启动和停止容器
docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker stop 容器id # 停止当前正在运行的容器 docker kill 容器id # 强制停止当前的容器
安装nginx
docker run -d -p 3344:80 nginx --name nginx01 # -d 后台运行 # --name 容器命名 # -p 宿主机端口:容器内端口 docker exec -it nginx01 /bin/bash whereis nginx # 查看nginx配置文件
安装tomcat
docker run -d -p 3345:8080 tomcat:9.0 --name tomcat01 docker exec -it tomcat01 /bin/bash
六、安装portainerportainer是Docker的图形界面管理工具,并提供了一个后台面板供我们操作。
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ledKBSqI-1651414458404)(D:用户admindesktop学习笔记imgQQ截图20220303222240.png)]
七、容器数据卷这是一个容器之间的数据共享技术。在Docker容器中产生的数据同步到本地。(如果不这么做,那么我们把容器删除,数据就会丢失。)
docker run -it -v /home/ceshi:/home centos /bin/bash docker inspect b4138bb71efe # 查看容器的详细信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W1QUzY87-1651414458411)(D:用户admindesktop学习笔记imgQQ截图20220304104527.png)]
MySQL的数据持久化
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql -d # 后台运行 -p # 端口映射 -v # 卷挂载 -e # 环境配置 --name # 容器名字



