目录

前言

一、安装docker

二、Docker 常用命令

总结


前言

之前在工作中有用到docker,自己也有安装,为了方便以后使用的时候好找,现在把docker的安装教程记录下来,整体安装很简单,只需要几步就可以搞定了


一、安装docker

docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上, RHEL/Centos 的内核修补过, centos6.5的版本就可以——这个可以试试)

1、root账户登录,查看内核版本如下

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

2、把yum包更新到最新(很多朋友说更新yum有问题,可以不更新试试)

yum update

3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

4、添加Docker Yum源

yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo

5、安装docker-ce

yum install docker-ce

如果安装报错

Error:
 Problem: package docker-ce-3:19.03.6-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.el7.x86_64 is excluded
  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

先安装containerd.io,再安装docker-ce

dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

6、打开Docker服务

设置开机启动

systemctl enable docker

启动docker

systemctl start docker

查看docker

# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-02-18 01:18:24 UTC; 5s ago
     Docs: https://docs.docker.com
 Main PID: 15974 (dockerd)
    Tasks: 8
   Memory: 57.6M
   CGroup: /system.slice/docker.service
           └─15974 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Feb 18 01:18:23 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:23.779929616Z" level=info msg="ClientConn switching balancer to \"pick_first>
Feb 18 01:18:23 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:23.803836421Z" level=warning msg="Your kernel does not support cgroup blkio >
Feb 18 01:18:23 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:23.803869583Z" level=warning msg="Your kernel does not support cgroup blkio >
Feb 18 01:18:23 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:23.803983869Z" level=info msg="Loading containers: start."
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:24.122678848Z" level=info msg="Default bridge (docker0) is assigned with an >
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:24.224324038Z" level=info msg="Loading containers: done."
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:24.283833038Z" level=info msg="Docker daemon" commit=369ce74a3c graphdriver(>
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:24.284052326Z" level=info msg="Daemon has completed initialization"
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal dockerd[15974]: time="2020-02-18T01:18:24.334367595Z" level=info msg="API listen on /var/run/docker.sock"
Feb 18 01:18:24 ip-172-31-20-189.ap-southeast-1.compute.internal systemd[1]: Started Docker Application Container Engine.

7、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

[root@localhost /]# docker version
Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:55:49 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:54:13 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

二、Docker 常用命令

1.拉取镜像

docker pull

2.删除容器

docker rm <容器名 or ID>

3.查看容器日志

docker logs -f <容器名 or ID>

4.查看正在运行的容器

docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。

5.删除所有容器

docker rm $(docker ps -a -q)

6.停止、启动、杀死指定容器

docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器

7.查看所有镜像

docker images

8.拉取镜像

docker pull <镜像名:tag>
# 例如以下代码
docker pull sameersbn/redmine:latest

9.后台运行

docker run -d <Other Parameters>
# 例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh

10.暴露端口

# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口

总结

以上就是docker的安装以及一些基本命令,docker基本安装还有命令还是挺简单的,现在docker用的已经比较普遍了,学习一下还是很有必要的,一起加油,耶( •̀ ω •́ )y