Docker常用容器命令

Docker常用容器命令

新建容器并启动

docker run [可选参数] 镜像名称

# 参数说明
--name= 容器名称
-d 后台运行方式
-it 采用交互模式运行
-p 主机端口:容器端口 指定容器端口映射 
-P 随机指定端口
-v 卷挂载
-e 环境配置

列出所有的容器

docker ps命令
# 列出正在运行的容器
-a # 列出所有的容器
-n=? # 显示最近创建的容器
-q # 只显示容器ID
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS        PORTS                                                                                      NAMES
11025ffd4e80   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6376->6379/tcp, :::6376->6379/tcp, 0.0.0.0:16376->16379/tcp, :::16376->16379/tcp   redis-6
31b5ce0cd98c   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6375->6379/tcp, :::6375->6379/tcp, 0.0.0.0:16375->16379/tcp, :::16375->16379/tcp   redis-5
ccc05f2ab8bc   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6374->6379/tcp, :::6374->6379/tcp, 0.0.0.0:16374->16379/tcp, :::16374->16379/tcp   redis-4
20e40bf0dc2b   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6373->6379/tcp, :::6373->6379/tcp, 0.0.0.0:16373->16379/tcp, :::16373->16379/tcp   redis-3
f32e7a237dc7   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6372->6379/tcp, :::6372->6379/tcp, 0.0.0.0:16372->16379/tcp, :::16372->16379/tcp   redis-2
9b52db0451d1   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   11 hours ago   Up 11 hours   0.0.0.0:6371->6379/tcp, :::6371->6379/tcp, 0.0.0.0:16371->16379/tcp, :::16371->16379/tcp   redis-1

进入当前正在运行的容器

# 方式一 
docker exec -it 容器名 /bin/bash 或 sh 
进入容器后开启一个新的终端,可以在里面操作(常用) 
# 方式二 
docker attach -it 容器名 /bin/bash 或 sh 
进入容器当前正在运行的终端

退出容器

exit
ctrl + P + Q # 容器不停止退出

删除容器

docker rm 容器ID或名称 # 不能删除正在运行的容器 如果要强制删除rm -f
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -q | xargs docker rm # 删除所有容器

启动和停止容器操作

docker start 容器ID或名称
docker stop 容器ID或名称
docker restart 容器ID或名称
docker kill 容器ID或名称 # 强制停止容器

常用其他命令

后台启动命令

docker run -d 镜像名 # 常见问题:docker容器使用后台运行,就必须要有一个前台进程,否则docker发现没有 应用,就会自己停止。 # nginx容器启动后,发现自己没有提供服务,就会立即停止

查看日志

docker logs 容器名 # 可选参数 -f 持续显示日志 -t 显示日志时间戳 -n 自定义日志条数显示

查看容器中进程信息

docker top 容器名 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD polkitd             48681               48660               0                   7月23                ?                   00:01:21            redis-server /etc/redis/redis.conf

查看容器元数据

docker inspect 容器名

从容器内拷贝文件到主机上

docker cp 容器名:容器内路径 目的主机路径

容器数据卷

docker run -v 本机目录:容器目录 
docker run --it -v /home/ceshi:/home centos /bin/bash 
实现数据持久化

具名挂载和匿名挂载

# 匿名挂载
-V 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx

# 查看所有volume的情况
docker volume ls

# 具名挂载
docker -run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

所有的docker容器内的卷,没有指定目录的情况下都在/var/lib/docker/volumes/xxxx/_data

我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的具名挂载

-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径:/容器内路径 # 指定路径挂载

拓展

# 通过-v容器内路径 :ro rw改变读写权限
ro readonly # 只读
rw readwrite # 可读可写

docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx:rw nginx

数据卷容器

多个mysql数据同步

docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 
--volumes-form mysql01 mysql:5.7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值