Docker命令
系统Ubuntu18.04
通用命令
# 查看docker版本
docker version
# 启动docker
sudo service start docker
# 停止docker
sudo service stop docker
# 重启docker
sudo service restart docker
镜像操作[image]
# 查看所有镜像
docker image ls -all # -all 可以省略
# 拉取镜像
docker image pull ubuntu:18.04 # pull后面<镜像名称:版本号>,不加默认最新, image可以省略
# 删除镜像(删除镜像前必须先停止运行该镜像的容器)
docker image rm ubuntu:18.04 # rm后面<镜像名称:版本号>/镜像ID
# 将docker中的镜像打包成文件(用于分享或者备份)
docker save -o <文件名.tar.gz> <镜像名> 或者 <文件名.tar> <镜像名>
# 将docker镜像文件加载到docker中
docker load -i <文件名.tar.gz> 或者 <文件名.tar>
容器操作[container]
# 创建容器
docker run <参数选项> <镜像名称> <命令>
# 参数选项
-i 表示以'交互模式'运行容器
-t 表示启动容器后会进入其命令行终端
-d 创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)
--name 设置容器的名称
-p 映射端口
-v 映射文件
--ip 指定ip
--network 指定网桥
# 例子(映射两个端口,两个文件,命名为mynginx,使用的镜像nginx,以bash运行在守护容器)
docker run -itd -p 80:80 -p 443:443 -v /home/bhlu:/home/aaa -v /home/yll:/home/bbb --name=mynginx nginx bash
# 列出容器
docker container ls # 所有正在运行的容器
docker container ls -all # 所有容器(包含已经关闭的),-all可以简写-a
# 启动容器
docker container start <容器名/容器ID> # 启动一个容器
docker container start <容器名/容器ID> <容器名/容器ID> <容器名/容器ID> # 启动多个容器
# 停止容器
docker container stop <容器名/容器ID> # 停止一个容器
docker container stop <容器名/容器ID> <容器名/容器ID> <容器名/容器ID> # 停止多个容器
# 杀死容器
docker kill <容器名/容器ID> # 杀死一个容器,尽量不要执行
# 删除容器
docker container rm <容器名/容器ID> # 删除容器前先停止容器
# 进入容器
docker container exec -it <容器名/容器ID> <第一个命令> # 命令可以写bash,就是以bash命令进入
# 将容器保存成镜像
docker commit <容器名/容器ID> <新镜像名> # docker commit mynginx nginx_1
网络配置[network]
# 查看docker的网络类型
docker network list # bridge: 桥接 none: 无指定网络 host: 和主机共用一个ip
# 创建自定义网桥
docker network create --subnet=x.x.x.0/24 <网桥名称>
# 创建容器使用指定ip
docker run -itd --network=<网桥名称> --ip x.x.x.8 --name=<容器名> <使用的镜像名>
# 删除网桥
docker network rm <网桥名称>
扩展
# ubuntu执行docker命令每次都要提权,如果不想使用sudo,可以进行下面的设置
sudo usermod -a -G docker $USER
sudo service docker restart
newgrp - docker