1、通过 RPM 安装 docker 17.03.0 版本并且配置 docker 阿里加速
#在centos7上安装
[root@centos7 ~]#wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
[root@centos7 ~]#wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
[root@centos7 ~]#yum -y install docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
#配置镜像加速
[root@centos7 ~]#mkdir -p /etc/docker
[root@centos7 ~]#tee /etc/docker/daemon.json <<EOF
> {
> "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
#启动服务
[root@centos7 ~]#systemctl daemon-reload
[root@centos7 ~]#systemctl enable --now docker
2、通过 docker 安装一个 LAMP 架构
(1)搜索star数超过100的lamp镜像,从中选择
[root@ubuntu18 ~]#docker search -s 100 lamp
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mattrayner/lamp A simple LAMP docker image running the prere… 240 [OK]
linode/lamp LAMP on Ubuntu 14.04.1 LTS Container 178
tutum/lamp Out-of-the-box LAMP image (PHP+MySQL) 141
greyltc/lamp a super secure, up-to-date and lightweight L… 101 [OK]
(2)选择一个镜像拉取,此处选择第一个
[root@ubuntu18 ~]#docker pull mattrayner/lamp
(3)创建容器
#查看刚才拉取到的镜像
[root@ubuntu18 ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mattrayner/lamp latest 05750cfa54d5 3 months ago 915
#运行容器
[root@ubuntu18 ~]#docker run -d --name=lamp -p 8080:80 -p 3306:3306 mattrayner/lamp
41cb606758aae902574fb80776d19ab7d59c72bfc99d4af528a6ca5193aeb5a8
[root@ubuntu18 ~]#docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41cb606758aa mattrayner/lamp "/run.sh" 49 seconds ago Up 48 seconds 0.0.0.0:3306->3306/tcp, 0.0.0.0:8080->80/tcp lamp
#进入容器
[root@ubuntu18 ~]#docker exec -it lamp /bin/bash
root@41cb606758aa:/# ll
total 120
drwxr-xr-x 1 root root 4096 Nov 15 08:23 ./
drwxr-xr-x 1 root root 4096 Nov 15 08:23 ../
drwxr-xr-x 2 www-data staff 4096 Nov 15 08:22 app/
drwxr-xr-x 1 root root 4096 Aug 16 2018 bd_build/
drwxr-xr-x 1 root root 4096 Jul 21 07:53 bin/
drwxr-xr-x 2 root root 4096 Apr 24 2018 boot/
-rwxrwxr-x 1 root root 2049 Jul 21 07:48 create_mysql_users.sh*
drwxr-xr-x 5 root root 340 Nov 15 08:22 dev/
-rwxr-xr-x 1 root root 0 Nov 15 08:22 .dockerenv*
drwxr-xr-x 1 root root 4096 Nov 15 08:22 etc/
drwxr-xr-x 2 root root 4096 Apr 24 2018 home/
drwxr-xr-x 1 root root 4096 Jul 24 2018 lib/
drwxr-xr-x 1 root root 4096 Jul 21 07:52 lib64/
drwxr-xr-x 2 root root 4096 Jul 24 2018 media/
drwxr-xr-x 2 root root 4096 Jul 24 2018 mnt/
drwxr-xr-x 2 root root 4096 Jul 24 2018 opt/
dr-xr-xr-x 189 root root 0 Nov 15 08:22 proc/
drwx------ 1 root root 4096 Jul 21 07:54 root/
drwxr-xr-x 1 root root 4096 Nov 15 08:23 run/
-rwxr-xr-x 1 root root 3696 Jul 21 07:48 run.sh*
drwxr-xr-x 1 root root 4096 Jul 21 07:52 sbin/
drwxr-xr-x 2 root root 4096 Jul 24 2018 srv/
-rwxr-xr-x 1 root root 67 Jul 21 07:48 start-apache2.sh*
-rwxr-xr-x 1 root root 89 Jul 21 07:48 start-mysqld.sh*
drwxr-xr-x 7 501 staff 4096 Jul 21 07:54 supervisor-4.2.0/
-rw-r--r-- 1 root root 1060 Nov 15 08:23 supervisord.log
-rw-r--r-- 1 root root 2 Nov 15 08:23 supervisord.pid
dr-xr-xr-x 13 root root 0 Nov 15 08:22 sys/
drwxrwxrwt 1 root root 4096 Nov 15 08:23 tmp/
drwxr-xr-x 1 root root 4096 Jul 24 2018 usr/
drwxr-xr-x 1 root root 4096 Jul 21 07:53 var/
(4)测试:在浏览器访问宿主机的ip的8080端口
3、写出 docker run 命令的延申指令,如怎么在停止一个 docker 容器的时候自动删除该容器
docker run --rm CONTAINER
#如下
#一次性执行完,并删除容器
[root@ubuntu1804 ~]#docker run --rm alpine cat /etc/issue
Welcome to Alpine Linux 3.11
Kernel \r on an \m (\l)
#范例: 指定容器名称,不能同名
[root@ubuntu1804 ~]#docker run --name a1 alpine
#范例: 设置容器内的主机名
[root@ubuntu1804 ~]#docker run -it --name a1 -h www.alpine.org alpine
4、写出 docker run 命令在自动启动 docker 服务时通过什么参数能够启动 docker 中的容器,从而实现容器随着 docker 服务的启动而自动启动
通过--restart选项的always策略可以实现容器随着docker服务的启动而启动,如下
[root@ubuntu1804 ~]#docker run -d --name nginx --restart=always -p 80:80 nginx