ubuntu20.04安装docker和docker-compose

Ubuntu 20.04 官方 apt 源中就有 Docker,我们可以直接通过 apt 来安装

sudo apt update
swapoff -a #关闭swap分区
vim /etc/fstab #编辑swap这行注释掉
sudo apt install docker.io -y
docker --version

默认情况下,普通用户没有权限执行 docker 相关操作,需要将普通用户加入到 docker 用户组

sudo usermod -aG docker $USER

然后重启机器,docker命令就能直接使用了

docker info 
Client:
 Context:    default
 Debug Mode: false
Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.2
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 
 runc version: 
 init version: 
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.8.0-59-generic
 Operating System: Ubuntu 20.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 13.56GiB
 Name: sukki
 ID: XIG5:VQCR:23NZ:4FGN:5HVP:BAJX:W3AY:VWNG:4XFZ:YD2B:MIE3:42KV
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
WARNING: No blkio weight support
WARNING: No blkio weight_device support

查看docker版本命令

docker -v 
Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2

由于 docker 默认镜像仓库在海外,所以需要配置国内源来加快镜像拉取速度
我这里修改的是163的镜像仓库

sudo vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com"
    ]
}

重启docker服务

sudo systemctl restart docker

查看配置是是否生效

docker info | grep -E "Registry|http"

接着我们拉取一个镜像试试

docker run ubuntu
docker ps -a

docker-compose安装也很简单

sudo apt install docker-compose -y
docker-compose -v
Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2

接下来测试使用docker-compose安装一个nginx容器
docker-compose.yml文件如下

version: '2.0'
services:
  nginx:
    restart: always
    image: nginx:1.11.6-alpine
    ports:
      - 8080:80
      - 80:80
      - 443:443
    volumes:
      - ./conf.d:/etc/nginx/conf.d
      - ./log:/var/log/nginx
      - ./www:/var/www
      - /etc/letsencrypt:/etc/letsencrypt

version:版本号
service:就是要定义的docker容器
nginx:容器的名称
restart:设置为always,表明此容器应该在停止的情况下总是重启,比如,服务器启动时,这个容器就跟着启动,不用手动启动,服务器启动之后,进入到docker-compose.yml文件路径下,执行docker-compose ps可以看到,该容器正在运行。
image:这个是需要依赖的容器,也就是nginx软件,可以到docker官方镜像上找到最新版的镜像。
ports:这个是容器自己运行的端口号和需要暴露的端口号。比如: - 8080:80,表示容器内运行着的端口是80,把端口暴露给8080端口,从外面访问的是8080端口,就能自动映射到80端口上。
volumes:这个是数据卷。表示数据、配置文件等存放的位置。(- . 这个表示docker-compose.yml当前目录位置开始创建这个文件)
接下来运行刚才构建的镜像

docker-compose -f docker-compose.yml up -d

docker-compose.png

我们可以通过docker ps和docker-compose ps查看容器情况

docker-compose up //启动yml文件定义的 container
docker-compose up -d //后台运行
docker-compose up --help //查看up帮助
docker-compose -f docker-compose.yml up //-f 指定yml文件
docker-compose stop //停止
docker-compose start 
docker-compose ls  //查看
docker-compose down //停止删除
docker-compose ps
docker-compose images
docker-compose exec {service_name} {bash}

注:当yml文件名为docker-compose.yml时候可以直接在当前目录docker-compose up -d直接构建容器,其他操作也是不需要指定-f参数和yml文件名

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/781.html