更多容器可以访问docker的Docker Hub
操作系统内核大于等于 3.10 的都可以安装最新版 Docker 查看内核版本
uname -r
安装docker
wget -qO- get.docker.com | bash
安装完成后,运行下面的命令,验证是否安装成功。
docker version
启动 Docker
systemctl start docker
查看 Docker 启动状态
systemctl status docker
允许 Docker 开机自启
systemctl enable docker
解决docker-compose: command not found的方法
您还需要安装Docker Compose。见 手册。以下是您需要执行的命令
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > ./docker-compose
sudo mv ./docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Docker 清理命令
杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'
删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'
删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'
删除所有未运行 Docker 容器 docker rm $(docker ps -a -q) 删除所有 Docker 镜像 删除所有未打 tag 的镜像
docker rmi $(docker images -q | awk ‘/^
docker rmi $(docker images -q) 根据格式删除所有镜像
docker rm $(docker ps -qf status=exited)
docker images
docker tag IMAGE_ID
保存对容器的修改,示范 docker commit cb439fb2c714 mxnet/python:gpu
停用全部运行中的容器:
docker stop $(docker ps -q)
删除全部容器:
docker rm $(docker ps -aq)
一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
docker system prune -y
docker image prune --force --all -y
更新docker 1.13 中增加了 docker system prune的命令,针对container、image可以使用docker container prune、docker image prune命令。
docker image prune --force --all或者docker image prune -f -a: 删除所有不使用的镜像docker container prune -f: 删除所有停止的容器
docker中如何删除image(镜像)
docker images
docker ps -a
查看docker的帮助会发现有两个与删除有关的命令rm和rmi
rm Remove one or more containers
rmi Remove one or more images
docker rmi ID
docker pull ubuntu
docker run -t -i ubuntu /bin/bash
删除 Docker 卷(volume)
docker volume ls
docker volume rm <volume_name>
清理所有 Docker 资源
docker system prune -a --volumes
这会清除所有未使用的容器、网络、镜像和卷
删除网络
docker network ls
docker network rm <network_name>
使用示例
- nginx
docker pull nginx
docker run --name some-nginx -d -p 8080:80 some-content-nginx
Then you can hit http://localhost:8080 or http://host-ip:8080 in your browser.
- shadowsocks-libev-teddysun
docker pull teddysun/shadowsocks-libev:alpine
在宿主机上创建配置文件
echo "{
"server":"0.0.0.0",
"server_port":9000,
"password":"password0",
"timeout":300,
"method":"aes-256-gcm",
"fast_open":true,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"obfs-server",
"plugin_opts":"obfs=tls"
} " > /etc/shadowsocks-libev/config.json
启动容器
docker run -d -p 9000:9000 -p 9000:9000/udp --name ss-libev -v /etc/shadowsocks-libev:/etc/shadowsocks-libev teddysun/shadowsocks-libev
介绍
- docker run:开始运行一个容器。
- -d 参数:容器以后台运行并输出容器 ID。
- -p 参数:容器的 9000 端口映射到本机的 9000 端口。默认是映射 TCP,当需要映射 UDP 时,那就再追加一次 UDP 的映射。冒号后面是容器端口,冒号前面是宿主机端口,可以写成一致,也可以不一致。
- –name 参数:给容器分配一个识别符,方便将来的启动,停止,删除等操作。
- -v 参数:挂载卷(volume),冒号后面是容器的路径,冒号前面是宿主机的路径,可以写成一致,也可以不一致。
- teddysun/shadowsocks-libev:这是拉取回来的镜像路径。
# 将容器保存成镜像
docker commit <容器id> <镜像名>:<tag>
#保存后 docker images便可以看到镜像
#将镜像保存为.tar文件,默认保存在当前目录
docker save -o <tar包名>.tar <镜像名>:<tag>
# 从 tar 包导入镜像
docker load -i <tar包名>.tar
# 导入镜像后,通过 docker images 便可看到导入的镜像
#通过镜像起容器
docker run -itd -p <本地端口>:<容器端口> --restart=always <镜像名>:<tag>