Docker快速入门

介绍

Docker 有点像虚拟机。但与虚拟机不同,Docker不是创建一个完整的虚拟操作系统,而是通过共享宿主机内核资源,创建一个个隔离的环境来运行应用程序。这样可以显著提升性能并缩小应用程序的大小。

安装

centos 下

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
#启动服务
$ sudo systemctl start docker
#设为开机启动(可选)
$ sudo systemctl enable docker
#测试
$ sudo docker run hello-world
#将当前用户加入docker用户组,执行docker命令不用sudo
$ sudo usermod -aG docker your-user

安装完成后开启加速,修改 /etc/docker/daemon.json 配置,使用中国镜像加速

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

重启 sudo systemctl daemon-reload && sudo systemctl restart docker 后生效

基本使用

docker 有三个概念:仓库,镜像,容器

  1. 仓库:存储镜像,类似 github 的仓库。
  2. 镜像:一个可执行包,包含运行应用程序所需的所有内容,代码,依赖,环境变量和配置文件。
  3. 容器: 运行中的镜像的一个实例。

操作镜像

搜索一个镜像,以 nginx 为例

$ docker search nginx

拉取一个 nginx 镜像到本地,默认拉取 latest tag 的镜像,可以去 https://hub.docker.com/_/nginx?tab=tags 选择你想要的 tag 进行拉取

$ docker pull nginx[:tag]

运行一个镜像,如果本地没有这个镜像,会先进行 pull 操作

## --rm 容器停止后删除
## -p 端口转发  --name 命名容器
$ docker run --rm -p 8080:80 --name my-nginx nginx

然后浏览器打开 http://127.0.0.1:8080/

此时会在终端打印出 nginx 日志,想要后台运行加 -d 参数

列出本地镜像,可以看到刚才拉取的 nginx

$ docker image ls #等于docker images

删除一个或多个本地镜像,-f 强制,image_id 无需全部打出,只要不冲突打前一位都没问题

$ docker image rm IMAGE_ID1 [ IMAGE_ID2 IMAGE_ID3]

或者 docker rmi ... 也是删除镜像

操作容器

一个镜像运行起来就是一个容器了,接着上面运行起来 nginx 后,新开一个终端

列出/停止/删除容器

$ docker container ls #[-a所有,包括停止的]
$ docker stop/rm CONTAINER_ID #[or name]

进入一个容器

$ docker exec -it my-nginx /bin/sh

结语

这里只写了一些最简单的基本操作,想要深入了解请查阅官方文档

推荐 Docker — 从入门到实践

posted @ 2019-01-17 16:47  luke44  阅读(300)  评论(0编辑  收藏  举报