I Am I
I Am I
文章97
标签98
分类4
Docker学习笔记

Docker学习笔记

Docker是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

最近用Docker的次数越多了 在此记录一下常用的命令

安装Docker

# 一键安装脚本支持CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
# 国内阿里云镜像
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

开机自启

# 启动Docker
systemctl start docker
# 开机自启Docker
systemctl enable docker

更换镜像源

# 如果etc下没有docker目录就创建
sudo mkdir -p /etc/docker
# 更换镜像源为阿里云
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com/"]
}
EOF
# 重载配置文件
sudo systemctl daemon-reload
# 重启Docker
sudo systemctl restart docker
# 显示Docker系统信息
此时可以看到`registry-mirrors`变成了阿里云的镜像源
docker info

常用命令

# 查看Docker版本
docker -v
# 下载镜像
docker pull 镜像名/ID
# 搜索镜像
docker search 镜像名/ID
# 启动镜像
docker run -d -p 2333:80 镜像名或镜像ID --name="my"
    # –name=”xxx-name”: 为容器指定一个名称
    # -d: 后台运行容器,并返回容器ID
    # -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    # -P(大写): 随机端口映射,容器内部端口随机映射到主机的高端口
    # -it: 为容器分配一个伪输入终端,已交互方式运行容器
# 停止容器
docker stop 容器名/ID
# 删除容器
docker rm 容器名/ID
# 启动已经被停止的容器
docker start 容器名/ID
# 重启容器
docker restart 容器名/ID
# 列出运行中容器
docker ps
    # -a: 显示所有的容器,包括未运行的。
    # -q: 静默模式,只显示容器编号。
    # -n: 列出最近创建的n个容器。
# 在运行的容器中执行命令
docker exec -it 容器名/ID bash
# 删除所有镜像
docker rmi $(docker images -q)
# 停止所有容器
docker stop $(docker ps -a -q)
# 删除所有容器
docker rm $(docker ps -a -q)
# 启动所有容器
docker start $(docker ps -a -q)

Docker compose

version: '2'
services:
 php:
   image: php:7.2-apache
   volumes:
    - ./www:/var/www/html
   ports:
    - "8080:80"
本文作者:I Am I
本文链接:https://5ime.cn/docker.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可