觉得有帮助的同学可以点个赞!传递给更多人!
文章目录
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层。
docker利用的是宿主机的内核(linux内核),vm需要是整个系统。
Docker的常用命令
docker启动,关闭,重启
# docker 启动命令
systemctl start docker
# docker 重启命令
systemctl restart docker
# docker 查看状态命令
systemctl status docker
docker信息
docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
下载镜像
docker pull #下载镜像
docker pull 镜像名:版本号 #下载指定版本
管理镜像
docker images # 显示所有本地镜像
docker rm IMAGE_ID # 删除镜像
docker rm -f $(docker ps -aq IMAGE_ID) # 删除aq的全部镜像
新建容器并启动
docker run【可选参数】image
# 或,这里的启动命令建议参考镜像的介绍页上的命令
docker run --name 容器名称 容器名称:容器版本
# 参数说明
--name="Name" 容器名字tomcat01 tomcat02,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口-p 8080:8080
# -p主机端口:容器端口(常用)
-P # 随机指定端口
exit # 退出容器
列出所有的运行的容器
docker ps # 列出当前正在运行的容器
-a # 列出当前正在运行的容器+带出历史运行过的容器
-n=?#显示最近创建的容器
启动和停止容器的操作
docker start 客器id
docker restart 容id
docker stop 容器id
docker kill 容器id
查看日志
docker logs -f -t --tail n 容器id
查看元数据
docker inspect id
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目标主机路径
docker进入容器
docker exec -it 容器id bash
centos开机自启docker
# 设置开机启动
systemctl enable docker.service
# 关闭开机启动
systemctl disable docker.service
docker容器设置开机自动启动
# 启动时加--restart=always
# 这里举例开机自启mariadb
docker run -d --restart=always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=你的密码 -v /home/disk_sql/mariadb_data/data:/var/lib/mysql -v /home/disk_sql/mariadb_data/conf/my.cnf:/etc/mysql/my.cnf --name mariadb_ubuntu 0a2fe61c51d1
# 如果已经启动的项目,则使用update更新
docker update --restart=always 容器name/id
docker启动mariadb并挂载目录实现将数据库的存储位置设置到其他磁盘
# 这里我使用了配置文件cnf;3307:3306 3307是外部端口。并且利用目录挂载实现将数据库的存储位置挂载到其他磁盘。
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=输入你的密码 -v /home/disk_sql/mariadb_data/data:/var/lib/mysql -v /home/disk_sql/mariadb_data/conf/my.cnf:/etc/mysql/my.cnf --name mariadb_ubuntu 0a2fe61c51d1
解决docker数据库时间不正确(因为容器内需要更改时区)
# a32029a14f3f为容器id
docker cp /usr/share/zoneinfo/Asia/Shanghai a32029a14f3f:/etc/localtime