更多容器可以访问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 ‘/^/ { print $3 }’) 删除所有镜像

docker rmi $(docker images -q) 根据格式删除所有镜像

docker rm $(docker ps -qf status=exited)

docker images docker tag IMAGE_ID /[:] docker login #docker push 镜像到docker hub 的仓库 docker push /: docker images 镜像的保存 docker save IMAGE_ID > newname.tar 镜像的导入 docker load < tnewname.tar

保存对容器的修改,示范 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>

使用示例

  1. 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.

  1. 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>