安装 docker

卸载 docker 旧版本

查看是否安装 docker,已经安装的版本

1
sudo docker --version

卸载旧版本

1
sudo apt remove docker docker-engine docker.io

如果要按照 EE 版本,还需要卸载 CE 版本

1
sudo apt remove docker docker-engine docker-ce docker.io

安装 docker 的准备

刷新 apt 包的索引

1
sudo apt update

安装必要的软件包以允许通过 Https 来使用 Docker 的存储库

1
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加 Docker 的 GPG 密钥

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

验证 GPG 密钥的指纹

1
2
3
4
5
6
7
8
9
10
sudo apt-key fingerprint 0EBFCD88

-----------------------------------------------------------
## 下面是验证成功的输出:
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
-----------------------------------------------------------

指定稳定版的知识库

1
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

安装最新版 docker

更新软件包索引并安装 Docker CE

1
2
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

建立 docker 用户组

1
sudo groupadd docker

将当前用户加入 docker 组

1
sudo usermod -aG docker $USER

检查安装是否成功

1
sudo docker run hello-world

安装 docker compose

确认最新的 compose 版本

从官方开源位置compose release page on GitHub上找到最新的稳定版的版本号。截止到本博文发文,最新的版本号是 1.23.2.

下载 compose

1
2
3
##  注意根据上一步的调查结果更换为合适的版本号。目前最新版是1.23.2.
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

设置执行权限

1
sudo chmod +x /usr/local/bin/docker-compose

检查安装是否正常完成

1
2
3
4
5
docker-compose --version

------------------------
正常完成的情况下,会输出如下说明。(1.23.2版的情况)
docker-compose version 1.23.2, build 1110ad01

配置 docker-compose 启动文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123456

web:
depends_on:
- db
image: wordpress:latest
volumes:
- ./web_data:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123456
项目 说明
version 配置文件的版本,默认为 3. 也有 3.1, 3.2.
services 服务:服务下面放置各个 docker 容器的配置。
db/web/… 自定义的 docker 容器的名字
image docker 镜像指定。格式为[镜像名字:tag]. 容器就是镜像的实例,所以这个指定很关键。如果本地没有相应的镜像,会自动从 docker.com 的公共仓库去拉取。这一点强吧!
volumes 数据卷指定。可以指定多个。如果不指定可读写数据卷,docker 一旦停止,用户数据也会随之消失。指定格式 HOST_DIRECTORY:CONTAINER_DIRECTORY:ReadWriteOption 主机的目录应该设置为相对路径,不然 docker 可能找不到要映射的目录。默认的读写属性为可以读写。
ports 端口映射。格式:HOST_PORTS:CONTAINER_PORTS。 mysql 数据库访问默认端口为 3306,web 服务器默认访问端口为 80,如果不指定的话,外面访问不了
restart 指定容器退出后的重启策略,always 为始终重启。生产环境中推荐配置为 always 或者 unless-stopped
environment 环境变量设置。这里设置的数据库用户名密码等,会自动反映到数据库中。注意不同服务(容器)之间的环境变量内容要匹配

启动 docker 并验证

进入到上面步骤生成配置文件所在的目录,并执行下面的命令,既可以启动 wordpress.

1
docker-compose up -d

启动参数 up :它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。链接的服务都将会被自动启动,除非已经处于运行状态。
-d:守护方式启动。 即后台方式启动各个容器。

这个时候,打开网页http://localhost/ 即可看到 wordpress 的语言选择界面。

下面再列举一些常用的 compose 命令

1
2
3
4
5
6
7
8
9
10
#查看compose版本
docker-compose version
#列出项目中目前的所有容器(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose ps
#停止当前的compose项目(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose stop
#重启动当前的compose项目(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose restart
#查看运行中的容器
docker container ls

补充说明:
docker-compose 命令选项
-f, –file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml ,可以多次指定。
-p, –project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。

修改 gcp 用户密码

通过sudo su命令切换到root用户

1
sudo su //切换到root用户

修改 SSH 配置文件/etc/ssh/sshd_config

1
vi /etc/ssh/sshd_config //编辑文件

找到 PermitRootLogin 和 Pa sswordAuthentication

1
2
3
4
5
# Authentication:
PermitRootLogin yes //默认为no,需要开启root用户访问改为

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes //默认为no,改为yes开启密码登陆

重启 SSH 服务

Ubuntu Debian 适用

1
/etc/init.d/ssh restart

Cent OS7 适用

1
systemctl restart sshd.service

进行以下操作,可使用 putty、iterm 等客户端通过用户名和密码访问实例

为现有用户设置一个密码,先查看当前登陆

1
who  //使用who查看当前登陆用户

可以看到当前登陆了 mapgun 和 root 用户,修改指定用户密码即可

1
passwd pajna //pajna改为想要修改的用户名

新增一个用户

1
2
useradd name  //新增用户
passwd name //设置用户密码

设置 root 密码

如果使用 root 密码登陆,需要设置 root 用户密码。

1
passwd root

vim 格式化 所有代码

  1. 按两下小写 g,即 gg,定位光标到第一行。
  2. 按住 Shift+v,即大写 V,进入可视化编辑的列编辑模式。
  3. Shift+g,即大写 G,选中整个代码。
  4. 按下等号=,格式化所有代码。