卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
yum安装docker
yum install docker-ce docker-ce-cli containerd.io -y
启动docker服务
systemctl start docker
设置开机自动启动
systemctl enable docker
查看docker状态
systemctl status docker
docker-compose
Docker输出详情介绍
docker ps
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running 或 Up(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
Docker基础命令
启动docker
systemctl start docker
关闭docker
systemctl stop docker
重启docker
systemctl restart docker
查看docker运行状态
systemctl status docker #如果是在运行中,会看到绿色的active
查看docker版本号信息
docker version
查看docker详细信息
docker info
docker帮助命令
docker --help
#查看pull的参数
docker pull --help
Docker
docker ps -a -q //查看所有容器ID
docker stop $(docker ps -a -q)
Docker镜像命令
查看自己服务器中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 #删除一个
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除多个,用空格隔开
docker rmi -f $(docker images -aq) #删除全部镜像,-a:显示全部,-q只显示ID
Docker清理命令
杀死所有正在运行的容器
docker kill $(docker ps -a -q)
删除所有已经停止的容器
docker rm $(dcoker ps -a-q)
删除所有未打dangling标签的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有镜像
docker rmi $(docker images -q)
强制删除 无法删除的镜像
docker rmi -f <IMAGE_ID>
docker rmi -f $(docker images -q)
~/.bash_aliases
杀死所有正在运行的容器
alias dockerkill='docker kill $(docker ps -a -q)'
删除所有已经停止的容器
alias dockercleanc='dcoker rm $(dcoker ps -a-q)'
删除所有未打标签的镜像
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
删除所有已经停止的容器和未打标签的镜像
alias dockerclean='dockercleanc || true && dockercleani'
Docker安装Nginx
docker检索nginx可用版本镜像
$ docker search nginx
取最新版的Nginx镜像
$ docker pull nginx:latest
查看本地镜像
$ docker images
运行容器
$ docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
- –name nginx-test:容器名称。
- -p 8080:80:端口进行映射,将本地8080端口映射到容器内部的80端口。
- -d nginx:设置容器在后台一直运行。
安装成功
通过浏览器直接访问8080端口的nginx服务
Docker与Mysql
查看下Mysql运行名称
#docker ps
进入docker数据库
docker exec -it 【docker容器名称】 mysql -u【数据库帐号】 -p【数据库密码】
docker exec -it tele-db mysql -utele -ptele@123456
备份docker数据库
docker exec -it 【docker容器名称/ID】 mysqldump -u【数据库帐号】 -p【数据库密码】【数据库名称】 >/opt/sql_bak/数据库名.sql【导出库表路径】
docker exec -it tele-db mysqldump -uroot -ptele@123456 criminalv60 < /opt/criminalv60.sql
导入docker数据库
方法1:
先将文件导入到容器
#docker cp **.sql【容器名】:/root/
进入容器
#docker exec -it 【容器名/ID】sh
将文件导入数据库
#mysql -uroot -p 【数据库名】<***.sql
方法2:
docker exec -i 【docker容器名称】 mysql -u【数据库帐号】 -p【数据库密码】 【数据库名】<【本地数据表路径】
docker exec -i tele-db mysql -utele -ptele@123456 criminalv60 < criminalv60.sql