Linux环境Docker基本操作命令


Docker环境的命令不是很熟悉,很多时候遇到要用的时候就要花费很多时间问度娘,还是自己在博客里面记录一下,方便后面查看。(本篇文章是基于Centos7编写,其他版本可能有所不同)

1. 启动和停止Docker

启动和停止Docker容器的两种方式:

  • 使用systemctl命令启动、停止
systemctl start docker # 启动Docker
systemctl stop docker # 停止docker
  • 使用后端运行方式启动,使用杀进程的方式关闭
dockerd & # 后台运行方式启动
ps -ef | grep docker # 查docker进程
kill [进程ID] # 根据进程ID关闭

如果需要Docker在开启后自动启动使用下面命令:

# 两个命令二选一
systemctl enable docker
chkconfig docker on

2. 查看Docker运行状态

查看Docker是否正常运行使用下面命令:

systemctl status docker

3. 加载已有镜像

加载已有的镜像到Docker中:

docker load < xxx.tar # xxx.tar表示镜像文件

4. 从docker仓库中拉取docker镜像

默认是从官网仓库中拉取,也可以从配置的国内镜像加速器中拉取(镜像加速器配置方式Docker基础概念理解

docker search tomcat # 查询tomcat目前有什么版本镜像可以拉取,返回是个列表
docker pull tomcat # 表示拉取最新版本tomcat镜像
docker pull tomcat:8 # 表示拉取指定版本的tomcat镜像

5. 查看Docker内的镜像列表

可以通过以下两个命令实现:

docker image list
docker images

6. 启动Docker镜像生成容器

生成容器的命令根据实际使用确定,下面是我常用的命令:

docker run -dit --name [容器名称] -v [容器目录]:[宿主挂载目录] -p [IP:端口:端口] [镜像ID] /bin/bash

说明:

  • 容器名称根据实际情况自定义,容器名称是唯一的不能重复
  • 容器目录和宿主挂载目录,表示在容器中可以访问宿主机指定目录下的所有文件,这种挂载方式又被称为数据卷
  • IP和端口,一般请求进入是请求宿主机的端口,这个时候就需要将此端口和容器关联,可以配置多个
  • 镜像ID,这个可以通过查看镜像列表获取,表示你将那个镜像加载为容器

示例:

docker run -dit --name my_container_name -v /home/my/:/home/my/ -p 8081:8080 -p 9091:9090 edf312c432d232 /bin/bash

7. 查看容器列表

查看容器列表有几个不同的命令,我只是用一个如下:

docker ps -a # 查看所有容器,包含运行中和停机的容器
docker ps # 查看运行中容器

8. 查看容器详细信息

docker inspect [容器ID]

9. 进入容器

容器启动后,需要进入容器做相关的操作,这个时候就需要进入到容器内部。

# 容器ID可以通过查看容器列表获得
docker attach [容器ID] # 这种方式个人最常用
docker exec -it [容器ID] /bin/bash # 这种方式也是可以的

10. 删除镜像和容器

  • 删除镜像
docker rmi [镜像ID] # 如果镜像有关联容器,将执行失败
docker rmi -f [镜像ID] # 强制删除镜像,同时删除关联的容器
  • 删除容器
docker rm [容器ID] # 删除容器,如果容器在运行貌似也是删不掉的
docker rm -f [容器ID] # 强制删除

11. 生成自定义镜像文件

基本格式:docker commit -m="这个是描述信息" -a="这是作者的名字" [容器ID] [新镜像名:版本号]

docker commit -m="new image" -a="itcrud" 81233a354ea new-image:1.0

12. 不进入容器情况下在容器内执行命令☆☆☆☆☆

这个很重要,而且经常遇到,比如启动容器内的tomcat,进入容器执行是可以的,但是在外部执行方便。执行命令如下:

docker exec -d [容器名称] /bin/bash -c [需要执行的命令] -g "daemon off;"

示例:

docker exec -d my_container_name /bin/bash -c "nohup java -jar /home/my/xxx.jar > /home/my/log/xxx.log 2>&1 &" -g "daemon off;"

文章作者: 程序猿洞晓
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 程序猿洞晓 !
评论
 上一篇
MySQL数据库系列(七):CentOS7环境下离线安装MySQL5.7数据库 MySQL数据库系列(七):CentOS7环境下离线安装MySQL5.7数据库
搭建一个开发环境,数据库技术选型是MySQL5.7,在网上直接搜了很多关于安装MySQL5.7的教程,踩坑踩雷是必然了,为了以后再次安装方便,记个笔记。
2022-03-13
下一篇 
在一台电脑上配置多个git账户解决方案 在一台电脑上配置多个git账户解决方案
最近遇到一个问题,我自己个人有一个码云的代码托管仓库,平时我自己的电脑直接配置账号拉取代码即可,但是现在需要用自己的电脑,开发公司的项目,这个时候就需要在电脑上使用不同的git账户,在度娘上找了很多解决方案,没有遇到完整可用的,经过使用总结和调试,得出以下配置方式,适用于第一拉代码和第一次提交代码。
2020-12-14
  目录