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