安装Docker
删除旧版本
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
安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
查看本地拉取的镜像
docker images
Docker的常用镜像命令
查看docker版本信息
docker version
显示docker的系统信息,包括镜像和容器的数量
docker info
帮助命令
docker 命令 --help
帮助文档:https://docs.docker.com/engine/reference
搜索镜像
docker search
下载镜像
docker pull #下载镜像
eg:
docker pull mysql == docker pull docker.io/library/mysql:latest
删除指定容器
docker rmi -f imagesID
Docker的常用容器命令
新建容器并启动
docker run [可选参数] image
# 参数命令
--name="Name" 容器命令,用来区分容器
-d 后台运行
-it 使用交互方式运行,进入容器查看内容(exit 退出容器并停止,ctrl+p+q退出容器不停止 )
-p 指定容器的端口
-p:8080:8080 主机端口:容器端口(常用)
-p 端口号
-P 随机指定端口
进入容器
docker exec -it 名称orid /bin/bash
列出运行中的容器
docker ps
docker ps -a 列出历史运行的容器
docker ps -n=? 显示最近运行的容器
删除容器
docker rm 容器id
docker rm -f $(docker ps -aq) #强制删除所有的
启动和停止容器的操作
docker start 容器id
docker restart 容器id
docker sotp 容器id
docker kill 容器id
查看容器的ip地址
docker inspect 名称
docker inspect --format='{{.NetworkSettings.IPAddress}}' 名称
常用其他命令
后台启动镜像
docker run -d 镜像名
note: docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止
查看日志
docker logs -f -t --tail n 容器
查看容器内进程信息
docker top 容器id
查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器
# 方式一 进入容器后开启一个新的终端
docker exec -it 容器id /bin/bash
# 方式二 进入容器正在执行的终端
docker attach 容器id
从容器内拷贝文件到主机上
docker cp 容器id:file 目的主机路径
eg:
root@K8S-APP-T02:/root#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ff1ca894a6b mysql:latest "docker-entrypoint.s…" 23 hours ago Up 23 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
b118954accef nacos/nacos-server "bin/docker-startup.…" 23 hours ago Up 23 hours 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp nacos
root@K8S-APP-T02:/root#docker exec -it 8ff1ca894a6b /bin/bash
root@8ff1ca894a6b:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@8ff1ca894a6b:/# cd /home
root@8ff1ca894a6b:/home# ls
root@8ff1ca894a6b:/home# touch test.txt
root@8ff1ca894a6b:/home# ls
test.txt
root@8ff1ca894a6b:/home# exit
exit
root@K8S-APP-T02:/root#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ff1ca894a6b mysql:latest "docker-entrypoint.s…" 23 hours ago Up 23 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
b118954accef nacos/nacos-server "bin/docker-startup.…" 23 hours ago Up 23 hours 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp nacos
root@K8S-APP-T02:/root#docker cp 8ff1ca894a6b:/home/test.txt /home
root@K8S-APP-T02:/root#ls
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
root@K8S-APP-T02:/root#cd ..
root@K8S-APP-T02:/#cd home/
root@K8S-APP-T02:/home#ls
config sysadmin sys-config.txt test.txt viewer
root@K8S-APP-T02:/home#
# 拷贝是一个手动过程,未来我们使用-V 卷技术,可以实现