Docker入门及常用命令大全
docker简介
Docker 是一个开源的应用容器引擎,容器是完全使用沙箱机制,相互之间不会有任何接口,基于 Go 语言 。
docker的优点
- 更快速的交付和部署
- 高度可移植
- 在同一硬件上运行更多工作负载
docker为什么比虚拟机快
- Docker有着比虚拟机更少的抽象层
- Docker利用的是宿主机的内核
docker镜像库
https://hub.docker.com
docker安装
可参考: https://www.runoob.com/docker/centos-docker-install.html
- 卸载旧版本(如果有)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装所需的软件包
yum install -y yum-utils
- 设置稳定的仓库(以下使用阿里云)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum软件包索引
yum makecache fast
- 安装docker(ce:社区版; ee:企业版)
yum install docker-ce docker-ce-cli containerd.io
- 启动docker
systemctl start docker
- 查看docker版本
docker version
docker 迁移
- 查看镜像存放的目录(默认存放目录 /var/lib/docker)
docker info
- 停止docker服务
systemctl stop docker.service
- 在挂载的磁盘目录下创建存放镜像目录
mkdir -p /data/var/lib
- 迁移镜像文件
mv /var/lib/docker /data/var/lib/docker
- 链接到原目录
ln -s /data/var/lib/docker /var/lib/docker
docker hub
地址:https://hub.docker.com/
docker 安装 consul
docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul agent -server -bootstrap-expect 1 -ui -bind=0.0.0.0 -client=0 .0.0.0
docker 安装 mysql
- 安装 docker 的mysql 镜像(3306:3306 --本地端口号:容器端口号)
docker run -p 3306:3306 --name mysql_3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 配置mysql
(1)进入镜像中的mysql
docker exec -it mysql_3306 bash
(2)登录mysql
mysql -u root -p
(3)修改root 可以通过任何客户端连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
docker常用命令
官方文档:https://docs.docker.com/reference/
version #显示docker的版本信息
—示例:docker version
info #显示docker的系统信息
—示例:docker info
help #显示docker命令帮助信息
—示例:docker --help
search #搜索镜像信息
—示例:docker search mysql #搜索mysql镜像信息
—示例:docker search mysql --filter=stars=3000 #搜索mysql收藏数大于3000的镜像信息
images #查看本地镜像
—示例:docker images
—示例:docker images -q #只显示镜像id
pull #下载镜像信息
—示例:docker pull mysql #下载mysql镜像信息
—示例:docker pull mysql:5.7 #下载mysql镜像信息
rmi #删除镜像
—示例:docker rmi -f 镜像id #删除某个镜像
—示例:docker rmi -f $(docker images -q) #删除全部镜像
—示例:docker rmi -f 镜像id1 镜像id2 #删除多个镜像
run #运行启动容器
—示例:docker run [可选参数] 镜像
[可选参数]
–name #容器名字
-d #后台运行方式
-it #使用交互式方式运行,进入容器
-p #指定容器端口
-P #随机指定端口
exit #退出容器
—示例:exit
Ctrl + P + Q #退出容器,容器不停止
—示例:Ctrl + P + Q
ps #查看容器
—示例:docker ps #查看当前运行的容器
—示例:docker ps -a #查看所有运行过的容器
—示例:docker ps -q #查看当前运行的容器id
rm #删除容器
—示例:docker rm 容器id #删除某个容器
—示例:docker ps -f $(docker ps -aq) #删除全部容器
start #启动容器
—示例:docker start 容器id
restart #重启容器
—示例:docker restart 容器id
kill #删除容器
—示例:docker kill 容器id #删除某个容器
logs #容器日志
—示例:docker logs -tf --tail 10 容器id #显示某个容器的10条日志
top #容器进程信息
—示例:docker top 容器id #显示某个容器的进程信息
inspect #查看容器信息
—示例:docker inspect 容器id #显示某个容器的信息
exec #进入容器(开启新的终端)
—示例:docker exec -it 容器id bash #进入某个容器
attach #进入容器(进入容器当前运行的终端)
—示例:docker exec -it 容器id #进入某个容器
cp #复制文件
—示例:docker cp 容器id:容器地址 主机地址 #复制容器文件到主机
-v #挂载
—示例:docker run -it -v 主机地址:容器地址 容器id
—示例:docker run -it -v 容器地址 容器id #匿名挂载
—示例:docker run -it -v 卷名:容器地址 容器id #具名挂载
commit #提交容器生成新的镜像副本
—示例:docker commit -a=“作者” -m=“信息” 提交的容器id 镜像名:TAG
build #构建镜像
—示例:docker build -f dockerfile路径 -t 镜像名