当前位置:   article > 正文

Docker下载与安装

docker下载
一、前言

以下采用Ubuntu系统学习Docker容器化技术。

Ubuntu中,系统为我们自动安装了一个叫apt的软件管理器。我们可以输入apt install来指定我们要安装什么软件,而Centos系统采用的yum进行安装的。所以此处采用apt-get命令安装。

二、安装Docker

不要忘了回到开头加上sudo,以管理员身份运行,sudo apt install docker.io,输入密码,回车进行docker安装,输入y确认。或者直接输入:sudo apt-get install docker.io -y

image-20230816141755976

image-20230816141919844

查看安装是否成功sudo docker -vdocker -v查看版本,看到如下这样的输出,说明软件已经安装好了

image-20230816141956036

三、Docker日常命令
1、查看Docker信息

sudo docker info

2、查看帮助文档

sudo docker --help

3、Docker服务的相关操作

这里主要介绍Linux版的Docker服务启动与关闭,如需Windows的请询问度娘,个人认为Windows版Docker还是很少装。本人也体验过Windows版从安装到使用都没用Linux版的好用。

注:systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合

  • systemctl start docker:Docker服务的启动
  • systemctl stop docker:Docker服务的停止
  • systemctl restart docker:Docker服务的重启
  • systemctl status docker:查看Docker服务的状态
  • systemctl enable docker:设置Docker开机启动
4、开放Docker的2375端口
  1. 首先编辑docker文件

sudo vim /lib/systemd/system/docker.service

  1. 然后找到ExecStart=/usr/bin/dockerd,在ExecStart=/usr/bin/dockerd后追加以下加粗部分

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock/

  1. 加载Docker守护线程

systemctl daemon-reload

  1. 重启Docker

systemctl restart docker

  1. 查看端口

netstat -tnlp |grep 2375

  1. 进行2375端口(或浏览器访问http://ip:2375/info)

image-20230822113003729

curl 127.0.0.1:2375/info

image-20230822113036303

  1. 注:如果系统没有安装curl命令。执行以下操作安装curl命令

sudo apt-get update

sudo apt install curl

如果上述第4步启动docker报错的话,

image-20230822113230805

可以采用以下方案

注释:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

增加一行ExecStart=/usr/bin/dockerd

[root@web-dev1 system]# sudo vim /usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

然后修改daemon.json,追加hosts配置项

[root@web-dev1 system]# sudo vim /etc/docker/daemon.json,增加以下配置

{
    "registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"],
    "exec-opts": ["native.cgroupdriver=cgroupfs"],
    "log-driver": "json-file",
    "log-opts": {"max-size": "10m","max-file": "10"},
    "insecure-registries": ["1.1.1.1:2021"],
    "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

保存以上配置后,重复执行上述第3、4、5、6步进行验证

5、Docker服务的常用操作

(1)、删除一个或多个容器

docker rm 容器ID…

(2)、查看容器的详细信息

docker inspect 44fc0f0582d9

(3)、显示所有容器

docker ps -a

(4)、显示正在运行的容器

docker ps

(5)、启动一个或多个已被停止的容器

docker start 容器名

(6)、停止一个运行中的容器

docker stop 容器名

(7)、重启容器

docker restart 容器名

(8)、进入Docker容器

####8214f935f4ea通过docker ps命令找到CONTAINER ID,推荐开发环境使用

第一种:attach命令

docker attach 8214f935f4ea(或者:sudo docker attach 4968e97f588d)

第二种:exec命令

sudo docker exec -it 4968e97f588d /bin/bash

第四种:进入一个已经在运行的容器,推荐生产环境使用

docker exec -it 8214f935f4ea /bin/bash

(9)、镜像操作

  • 获取镜像

sudo docker pull ubuntu

  • 查看所有镜像

sudo docker images

  • 查询镜像(默认从Docker Hub获取)

sudo docker search ubuntu

  • 删除镜像(根据镜像ID)

sudo docker rmi 0e2e63d6b600

  • 创建镜像

sudo docker commit -a “Yongzheng” -m “Ubuntu:16” 4968e97f588d ubuntu:16.6

(10)、容器操作

容器查询

  • 显示运行的容器

sudo docker ps

  • 显示所有容器

sudo docker ps -a

容器启动

  • 启动容器

sudo docker start 4968e97f588d

  • 重新启动容器

sudo docker restart 4968e97f588d

  • 终止容器

sudo docker stop 4968e97f588d

(11)、运行第一个容器

$sudo docker run --name 容器名 -i -t centos /bin/bash

新建容器基于centos基准镜像,将会从本地查找,找不到从互联网下载该镜像.

docker run 新建镜像命令

-i-t 为支持标准输入STDIN,分配伪tty终端

/bin/bash将会能够看到容器内的shell

eg、sudo docker run --name hello-world -i -t centos /bin/bash

6、扩展

docker search mysql 找 Docker Hub 上的 mysql 镜像

systemctl stop firewalld.service 关闭防火墙

docker inspect 容器id 查询容器信息

docker stop 容器id 停止容器id

docker rm 容器id 删除容器id

systemctl restart docker 重启docker容器

docker exec -it 容器ID /bin/bash 进入容器

docker rm $(sudo docker ps -a -q) 删除所有未运行的容器

docker search elasticsearch 搜索镜像文件

docker run 创建并启动一个容器,在run后面加上-d参数,则会创建一个守护式容器在后台运行。

docker ps -a 查看已经创建的容器

docker ps -s 查看已经启动的容器

docker start con_name 启动容器名为con_name的容器

docker stop con_name 停止容器名为con_name的容器

docker rm con_name 删除容器名为con_name的容器

docker rename old_name new_name 重命名一个容器

docker attach con_name 将终端附着到正在运行的容器名为con_name的容器的终端上面去,前提是创建该容器时指定了相应的sh

docker logs --tail=“10” 容器名称 查询容器日志信息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/947928
推荐阅读
相关标签
  

闽ICP备14008679号