镜像
- 查看镜像
docker images
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 4e2eef94cd6b 5 days ago 73.9MB
openresty/openresty 1.13.6.2-alpine ef57f6ca4202 14 months ago 49.1MB
- 获取镜像
docker pull
sudo docker pull ubuntu
- 获取详细信息
docker inspect + 镜像名或Id
docker inspect ubuntu
- 删除镜像
docker rmi + 镜像名或Id
docker rmi ubuntu
- 保存镜像
docker commit
docker commit -m "测试" nginx
- 命名镜像
docker tag
docker tag 1d538d7dd3b2 nginx1.0
- 迁移镜像
docker save
docker save nginx1.0 > nginx1.0.tar
- 批量迁移:
sudo docker save -o ./images.tar webapp:1.0 nginx:1.12 mysql:5.7
- 导入镜像
docker load
sudo docker load < webapp-1.0.tar
容器
- 创建容器
docker create
sudo docker create nginx:1.12
-- name 设置容器名
sudo docker create --name nginx nginx:1.12
- 启动容器
docker start
sudo docker start nginx
docker run
= docker create
+ docker start
sudo docker run --name nginx -d nginx:1.12
- 查看容器列表
docker ps
docker ps 正在运行的容器
docker ps -all/-a 所有容器
- 停止容器
docker stop
sudo docker stop nginx
- 删除容器
docker rm
sudo docker rm nginx
sudo docker rm -f nginx 强制删除
- 进入容器
docker exec
sudo docker exec -it nginx bash
- 导出容器
docker export
sudo docker export -o ./nginx.tar nginx
- 导入容器
docker import
sudo docker import nginx.tar nginx2
网络
- 容器互联:
--link
sudo docker run -d --name webapp --link mysql webapp
- 暴露端口:
--expose
sudo docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --expose 13306 --expose 23306 mysql:5.7
- 创建网络:
docker network create
sudo docker network create -d bridge individual
-d 网络驱动类型:bridge、host、overlay、maclan、none
- 加入网络:
--network
sudo docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --network individual mysql:5.7
- 端口映射:
-p
/-publish
// ip 是宿主操作系统的监听ip,host-port是宿主机端口,container-port是容器端口
-p <ip>:<host-port>:<container-port>
将容器的 80 端口映射到宿主操作系统的 8080 端口:
sudo docker run -d --name nginx -p 8080:80 -p 443:443 nginx:1.12
数据卷
- 挂载
-v
或-volume
sudo docker run -d --name webapp -v /webapp/storage webapp:latest
- 创建
docker volume create
sudo docker volume create appdata
- 查看
docker volume ls
docker volume ls
DRIVER VOLUME NAME
local appdata
- 删除
docker volume rm
或docker volume prune
(删除没有被容器引用的数据卷)
sudo docker volume rm appdata
或者
sudo docker rm -v webapp