《‘狂’人日记》---Docker从入门到进阶之基础操作(一)

简介: Docker入门篇,以一些简单例子向您展示Docker的便捷

1.安装并启用

1.1 CentOS安装Docker

# 更新源
[root@base ~]# yum -y update
# 安装docker
[root@base ~]# yum -y install docker
# 查看docker版本
[root@base ~]# docker info
# 启动docker、设置开机自启
[root@base ~]# systemctl start docker
[root@base ~]# systemctl enable docker

docker info

start_docker

1.2 Ubuntu安装Docker

# 更新源
f@baseu:~$ sudo apt-get -y update
# 安装Docker
f@baseu:~$ sudo apt-get -y install docker.io
# 查看docker版本信息
f@baseu:~$ sudo docker info
# 启动和设置docker开机自启
f@baseu:~$ sudo systemctl start docker
f@baseu:~$ sudo systemctl enable docker

image.png

image.png

1.3 Windows安装Docker

Docker 官网下载安装

下载Windows版本

2.常用命令

2.1 容器命令

2.1.1 ps命令

2.1.1.1 使用语法

Usage:  docker ps [OPTIONS]

List containers

Options:
  -a, --all             显示所有容器(默认显示正在运行)
  -f, --filter filter   根据提供的条件过滤输出
      --format string   使用Go模板的漂亮打印容器
      --help            打印使用
  -n, --last int        显示最后创建的n个容器(包括所有状态)(默认值为-1)
  -l, --latest          显示最新创建的容器(包括所有状态)
      --no-trunc        不要截断输出
  -q, --quiet           仅显示数字ID
  -s, --size            显示总文件大小

2.1.1.2 -a 显示所有容器

[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
609b039cc1e6        nginx               "/docker-entrypoin..."   4 seconds ago       Up 2 seconds               80/tcp              nginx
88958f0f4fc8        centos-7            "/bin/bash"              2 weeks ago         Exited (137) 2 weeks ago                       centos7

image.png

2.1.1.2 -f,--filter 过滤

[root@base ~]# docker ps -af name='centos7'
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
88958f0f4fc8        centos-7            "/bin/bash"         2 weeks ago         Exited (137) 2 weeks ago                       centos7

image.png

2.1.1.3 -q 只显示id

[root@base ~]# docker ps -aq
609b039cc1e6
88958f0f4fc8

image.png

2.1.1.4 组合使用

# 查询所有容器中name为 centos7 的 并且只显示id
[root@base ~]# docker ps -aqf name='centos7'
88958f0f4fc8

image.png

2.1.2 run 运行容器

2.1.2.1 使用语法(常用参数语法)

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:
      
  -d, --detach                                在后台运行容器并打印container ID
  -i, --interactive                           保持STDIN打开,即使未连接
  -p, --publish list                          将容器的端口发布到主机(默认值[])
  -P, --publish-all                           将所有公开端口发布到随机端口
      --restart string                        容器退出时应用的重新启动策略(默认为“否”)
      --name string                           为容器指定一个名称
  -t, --tty                                   分配一个伪TTY

2.1.2.2 -dit 后台运行,打开STDIN并分配一个伪TTY

[root@base ~]# docker run -dit nginx
056121918e5bdf3072cf9dc0e5533569d86e4a8d0c4faf0526be9a431711ba1c
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
056121918e5b        nginx               "/docker-entrypoin..."   20 seconds ago      Up 18 seconds              80/tcp              unruffled_chandrasekhar
609b039cc1e6        nginx               "/docker-entrypoin..."   21 hours ago        Exited (0) 21 hours ago                        nginx
88958f0f4fc8        centos-7            "/bin/bash"              2 weeks ago         Exited (137) 2 weeks ago                       centos7

image.png

2.1.2.3 --name 设定名字

[root@base ~]# docker run -dit --name nginx_named nginx
8925665a0958b70246993cecfa24e3580c114ecfd5fa2a15eb8cbc754d765b1a
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
8925665a0958        nginx               "/docker-entrypoin..."   2 seconds ago       Up 2 seconds               80/tcp              nginx_named
056121918e5b        nginx               "/docker-entrypoin..."   6 minutes ago       Up 6 minutes               80/tcp              unruffled_chandrasekhar
609b039cc1e6        nginx               "/docker-entrypoin..."   21 hours ago        Exited (0) 21 hours ago                        nginx
88958f0f4fc8        centos-7            "/bin/bash"              2 weeks ago         Exited (137) 2 weeks ago                       centos7

image.png

2.1.2.4 -p 指定端口/ -P 随机端口

# -p指定端口
[root@base ~]# docker run -dit --name nginx -p 8080:80 nginx
c484ad61ed99710970889a54c94af47fdb6c50096331ac75e022e2b8383ec14a
[root@base ~]# curl localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>


# -P 随机端口(32768起)
[root@base ~]# docker run -dit --name nginx_P -P nginx
3bbda870da081d5bd79e1bcc5c1ef6364382264f1f59d57ba45441af2f1c5161
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                     PORTS                   NAMES
3bbda870da08        nginx               "/docker-entrypoin..."   2 seconds ago        Up 2 seconds               0.0.0.0:32768->80/tcp   nginx_P
c484ad61ed99        nginx               "/docker-entrypoin..."   About a minute ago   Up About a minute          0.0.0.0:8080->80/tcp    nginx
88958f0f4fc8        centos-7            "/bin/bash"              2 weeks ago          Exited (137) 2 weeks ago                           centos7
[root@base ~]# curl localhost:32768
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

image.png

image.png

2.1.3 rm删除容器

2.1.3.1 使用语法

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers

Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
      --help      Print usage
  -l, --link      Remove the specified link
  -v, --volumes   Remove the volumes associated with the container

2.1.3.2 删除容器

[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                   NAMES
3bbda870da08        nginx               "/docker-entrypoin..."   21 hours ago        Up 2 seconds               0.0.0.0:32768->80/tcp   nginx_P
c484ad61ed99        nginx               "/docker-entrypoin..."   21 hours ago        Exited (0) 21 hours ago                            nginx
88958f0f4fc8        centos-7            "/bin/bash"              2 weeks ago         Exited (137) 2 weeks ago                           centos7
[root@base ~]# docker rm nginx
nginx
[root@base ~]# docker rm nginx_P
Error response from daemon: You cannot remove a running container 3bbda870da081d5bd79e1bcc5c1ef6364382264f1f59d57ba45441af2f1c5161. Stop the container before attempting removal or use -f

image.png

2.1.3.3 -f 强制删除容器


[root@base ~]# docker rm -f nginx_P
nginx_P
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
88958f0f4fc8        centos-7            "/bin/bash"         2 weeks ago         Exited (137) 2 weeks ago                       centos7

image.png

目录
相关文章
|
3月前
|
运维 Kubernetes 开发者
解锁现代开发与部署:Docker入门指南
解锁现代开发与部署:Docker入门指南
191 100
|
1月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
4月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
354 1
|
8月前
|
Ubuntu Linux Docker
Docker 入门全攻略:安装、操作与常用命令指南
Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
11月前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
943 5
docker入门-快速学会docker
|
Kubernetes Linux Docker
容器化技术Docker入门与实践
容器化技术Docker入门与实践
189 20
|
12月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
Kubernetes Cloud Native 算法
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
296 0
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
|
SQL NoSQL Cloud Native
【云原生】1.5 Docker 进阶实战
创建一个redis (mkdir redis),然后打开 redis(cd redis),准备好配置文件(vi redis.conf),输入 :wq 退出并保存。 redis使用自定义配置文件启动(记得要添加安全组)
179 0
【云原生】1.5 Docker 进阶实战
|
安全 测试技术 API
《Docker进阶与实战》——导读
本节书摘来自华章社区《Docker进阶与实战》一书中的目录,作者华为Docker实践小组,更多章节内容可以访问云栖社区“华章社区”公众号查看
2071 0