安装与卸载
脚本安装
使用脚本安装 docker 极其简单,在终端输入以下命令,等待完成
curl -sSL https://get.docker.com | sh
确认是否成功
sudo docker --version
卸载
apt-get remove docker-ce docker-ce-cli # 卸载软件
apt-get remove –purge docker-ce docker-ce-cli # 卸载并清除配置
常用命令
启动和关闭 docker 服务
sudo service docker start# 启动Docker服务
sudo service docker stop# 关闭Docker服务
重启 docker 并常驻服务
sudo systemctl restart docker.service
sudo systemctl enable docker.service
为当前用户增加权限
sudo groupadd docker
sudo usermod -aG docker userName # 此处 userName 替换为你的用户名
查看 docker 基本信息
包括窗口、镜像数量和运行情况,安装目录等
sudo docker info
镜像
查看所有下载镜像的状态
sudo docker images
搜索镜像
镜像的名字通常由用户名/镜像名构成, 无用户名的为官方认证镜像。
docker search ubuntu
获取镜像
sudo docker pull ubuntu # 使用 ubuntu:版本号 可以指定要下载的版本,默认为最新版本latest
删除镜像
sudo docker rmi ubuntu # 需先删除镜像对应的容器
删除所有镜像
sudo docker rmi $(docker images -q) # 需先删除镜像对应的容器
容器
查看所有容器的状态
sudo docker ps -a
运行容器
sudo docker run --rm ubuntu echo "Hello from docker" # rm 参数:容器运行结束之后就自动删除
后台运行容器
sudo docker run -d --name=ubuntu ubuntu # name参数: 为容器指定 name
交互式运行容器
sudo docker run -it --name=ubuntu ubuntu
# it参数:{
# i:即使未连接,交互式仍保持标准输入(键盘)打开
# t: 分配一个伪终端
# }
# name参数: 为容器指定 name
查看运行的详细参数
sudo docker run --help
停止容器
sudo docker stop ubuntu
进入停止的容器
sudo docker start ubuntu
# attach命令只能在本机开发时使用
# 因为退出会造成容器关闭,某台机器故障会造成所有人阻塞
sudo docker attach ubuntu
# 该命令可用于生产环境;退出不关闭,无阻塞
sudo docker exec -it ubuntu /bin/bash
删除容器
sudo docker rm ubuntu # 容器不能处于运行状态
删除所有停止的容器
sudo docker rm -v $(docker ps -a -q -f status=exited)
查看指定容器 ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
查看所有容器 ip
docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
目录挂载
挂载宿主机目录 /test 到容器的 /soft 目录
sudo docker run -it -v /test:/soft ubuntu
# 挂载时所有目录都应使用绝对目录
# 宿主机目录 /test 如果不存在,则会自动生成,
# 宿主机目录不填写 如 $ docker run -it -v /test2 ubuntu 则默认挂载在宿主机/var/lib/docker/volumes/下新建的目录下
容器自动重启
在因外界原因导致容器停止后,docker 自动重启容器
sudo docker run -it --restart always ubuntu
容器追加启动参数
在实际生产应用中,一个容器可能会连续运行数月甚至数年,后期由于需求变动,可能需要在容器启动时添加新的启动参数。此时,相比新建容器更好的解决方案是
使用 docker 提供的 docker container update
docker container update --restart=always ubuntu # 为 ubuntu 追加自动重启参数