安装
#centos
https://docs.docker.com/engine/install/centos/
#ubuntu
https://docs.docker.com/engine/install/ubuntu/
#debian
https://docs.docker.com/engine/install/debian/
#fedora
https://docs.docker.com/engine/install/fedora/
#centos。fedora默认源
https://download.docker.com/linux/fedora/docker-ce.repo
#阿里源
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#部分版本在安装过程中会报错,根据报错信息加上指定参数,如--allowerasing
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing
#启动 Docker
systemctl start docker
#开机启动docker
systemctl enable docker
#删除安装包
yum remove docker-ce
#删除镜像、容器、配置文件等内容
rm -rf /var/lib/docker
阿里云安装docker
https://help.aliyun.com/document_detail/264695.html
基础配置
配置国内镜像源
#配置文件路径,默认不存在,需要创建
/etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
常用命令
系统命令
-
启动docker
systemctl start docker -
关闭docker
systemctl stop docker -
重启docker
systemctl restart docker -
docker开机启动
systemctl enable docker -
查看Docker的运行状态
systemctl status docker基础命令
-
查看docker 版本号信息
docker version docker info -
docker帮助命令
docker --help docker pull --help镜像命令
-
查看docker 镜像列表
docker images -
搜索镜像
docker search 镜像名 docker search --filter=STARS=9000 mysql #搜索 STARS >9000的 mysql 镜像 -
拉取镜像
#不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本 docker pull 镜像名 docker pull 镜像名:tag -
运行镜像
docker run 镜像名 docker run 镜像名:Tag -
删除镜像
#当前镜像没有被任何容器使用才可以删除 #删除一个 docker rmi -f 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID docker rmi -f $(docker images -aq) docker rmi `docker images -aq` -
删除容器
docker rm 容器ID -
强制删除镜像
docker image rm 镜像名称/镜像ID -
保存镜像
#将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后可以在任何一台安装了docker的服务器上 加载这个镜像 docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 docker save tomcat -o /myimg.tar -
加载镜像
#任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像 docker load -i 镜像保存文件位置 -
镜像标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG # 如果省略TAG 则会为镜像默认打上latest TAG docker tag aaa bbb # 上方操作等于 docker tag aaa:latest bbb:test容器命令
-
查看命令
#查看正在运行容器列表 docker ps #查看所有容器 -----包含正在运行 和已停止的 docker ps -a #只显示容器ID docker ps -q -
运行容器
#-it表示与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)--name 给要运行的容器起的名字 /bin/bash 交互路径 #--restart=always 便表示,该容器随docker服务启动而自动启动 docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash #没有设置随docker启动,想要将已启动容器设置为随docker启动 docker update --restart=always 容器Id/容器名 #或 docker container update --restart=always 容器Id/容器名 -
重启/停止容器
docker restart 容器名/容器ID docker stop 容器名/容器ID -
进入容器
docker exec -it 容器名/容器ID /bin/bash #推荐使用exec方式 docker attach 容器名/容器ID -
退出容器
#直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭 exit #优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭 Ctrl + p + q -
容器文件拷贝
#无论容器是否开启 都可以进行拷贝 #从容器内拷出 docker cp 容器ID/名称: 容器内路径 容器外路径 #docker cp 333d6b0c52c449d9199e2a5ee610ac24f73a8fd338fad0185142797eeff28112:/home/rocketmq/rocketmq-4.9.2/bin D:/server/rocketmq/ #从外部拷贝文件到容器内 docker cp 容器外路径 容器ID/名称: 容器内路径 -
查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID -
更新容器名称
docker rename 容器ID/容器名 新容器名
常用镜像安装
安装NoVNC
docker run -id --name=novnc -p 5900:5900 novnc
安装redis
docker run -id --restart=always --name=redis -p 6379:6379 redis --requirepass secpay##
安装tomcat
docker run -id --name=tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
安装nginx
docker run -id --name=nginx \
-p 80:80
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
安装rabbitmq
docker pull rabbitmq:management
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq:management