本系列文章主旨在于使用docker来搭建实际可用的基础服务,具体到每一步的操作和设置。
关于docker的原理、前世今生的内容,园子里已经有太多的文章了,此处就不再赘述。
要使用docker,当然第一步就是把它装到机器上,今天第一篇就讲docker自身的安装。
本文使用的服务器配置如下:
CPU: 8核
内存: 16G
硬盘: 50G+400G双硬盘
系统: Ubuntu 18.04.1 LTS
安装步骤如下:
1. 更新Ubuntu所有组件到最新
sudo apt-get update sudo apt-get upgrade
2. 安装必备软件
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
3. 添加密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88
4. 添加docker源仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5. 更新仓库列表
sudo apt-get update
6. 安装最新版本 docker
sudo apt-get install docker-ce
安装过程显示如下,如果网络顺畅的话,应该能够很顺利的安装完成
Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: aufs-tools cgroupfs-mount libltdl7 pigz The following NEW packages will be installed: aufs-tools cgroupfs-mount docker-ce libltdl7 pigz 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 40.2 MB/40.4 MB of archives. After this operation, 199 MB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 18.06.1~ce~3-0~ubuntu [40.2 MB] Fetched 3,431 kB in 1min 57s (29.3 kB/s) Selecting previously unselected package pigz. (Reading database ... 88421 files and directories currently installed.) Preparing to unpack .../archives/pigz_2.4-1_amd64.deb ... Unpacking pigz (2.4-1) ... Selecting previously unselected package aufs-tools. Preparing to unpack .../aufs-tools_1%3a4.9+20170918-1ubuntu1_amd64.deb ... Unpacking aufs-tools (1:4.9+20170918-1ubuntu1) ... Selecting previously unselected package cgroupfs-mount. Preparing to unpack .../cgroupfs-mount_1.4_all.deb ... Unpacking cgroupfs-mount (1.4) ... Selecting previously unselected package libltdl7:amd64. Preparing to unpack .../libltdl7_2.4.6-2_amd64.deb ... Unpacking libltdl7:amd64 (2.4.6-2) ... Selecting previously unselected package docker-ce. Preparing to unpack .../docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb ... Unpacking docker-ce (18.06.1~ce~3-0~ubuntu) ... Setting up aufs-tools (1:4.9+20170918-1ubuntu1) ... Processing triggers for ureadahead (0.100.0-20) ... Setting up cgroupfs-mount (1.4) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for systemd (237-3ubuntu10.3) ... Setting up libltdl7:amd64 (2.4.6-2) ... Processing triggers for man-db (2.8.3-2) ... Setting up pigz (2.4-1) ... Setting up docker-ce (18.06.1~ce~3-0~ubuntu) ... Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. Processing triggers for ureadahead (0.100.0-20) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for systemd (237-3ubuntu10.3) ...
至此,docker安装完成,下面对docker做一些基本配置
7. 设置docker拉取镜像使用的代理(本步骤可选,根据实际需要设置)
# 创建配置目录 mkdir -p /etc/systemd/system/docker.service.d # 编辑配置文件 vi /etc/systemd/system/docker.service.d/http-proxy.conf
插入如下内容
[Service] Environment="HTTP_PROXY=http://192.168.0.158:3128/"
保存退出,重启docker
systemctl daemon-reload
systemctl restart docker
查看配置结果
systemctl show --property=Environment docker
8. 来一个hello world
sudo docker pull hello-world sudo docker run hello-world
如果配置正常的话将显示如下结果
Using default tag: latest latest: Pulling from library/hello-world d1725b59e92d: Pull complete Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 Status: Downloaded newer image for hello-world:latest
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/