启动和停止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

查看Docker运行状态

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

systemctl status docker

加载已有镜像

加载已有的镜像到Docker中:

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

查看Docker内的镜像列表

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

docker image list
docker images

启动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 0.0.0.0:8080:8080 -p 0.0.0.0:9090:9090 edf312c432d232 /bin/bash

查看容器列表

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

docker ps -a

进入容器

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

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

删除镜像和容器

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

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

这个很重要,而且经常遇到,比如启动容器内的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;"