Docker
一、Docker的安装
1、使用官方的脚本进行安装
安装命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内daocloud一键安装命令
curl -sSL https://get.daocloud.io/docker | sh
2、手动安装
卸载旧版本
- 较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载他们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装Docker Engine-Community
使用Docker仓库进行安装
- 在首次安装Docker Engine-Community之前,需要设置Docker仓库。
设置仓库
- 在那装所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和Ivm2。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 使用一下命令来设置稳定的仓库
# 使用官方源地址(比较慢)
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 可以选择国内的一些源地址
# 阿里云
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 清华大学源
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装Docker Engine-Community
- 安装最新版本的Docker Engine-Community和containerd,或者转到下一步安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
如果提示你接收GPG密钥,请选择是
Docker看着完默认未启动。并且已经创建号docker用户组,但该用户组下没有用户。
要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
- 列出并排序你存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
- 通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本呢字符串(第二列),从第一个冒号(:)一直到第一个连字符(-)分割。例如:docker-ce-18.09.1。
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动Docker
sudo systemctl start docker
设置Docker开机自启
service docker start#启动docker
service docker stop#停止docker
service docker restart#重启docker
systemctl enable docker#设置docker开机自启
通过运行hello-world映像来验证是否正确安装了Docker Engine-Community
sudo docker run hello-world
3、卸载 Docker
删除安装包
yum remove docker-ce
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
二、运行操作容器
通过 docker 的两个参数 -i -t,让 docker 运行的容器实现对话的能力:
docker run -i -t ubuntu:15.10 /bin/bash
各个参数解析:
- -t:在新容器内指定一个伪终端或终端。
- -i:允许你对容器内的标准输入(STDIN)进行交互。
runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
- 注意第二行
root@0123ce188bd8:/#,此时我们已进入一个 ubuntu15.10 系统的容器
尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表
root@0123ce188bd8:/# cat /proc/version
Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
root@0123ce188bd8:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@0123ce188bd8:/#
- 注意第三行中
root@runoob:~#表明我们已经退出了当前的容器,返回到当前的主机中。
通过运行exit命令或者使用CTRL+D来退出容器
root@0123ce188bd8:/# exit
exit
root@runoob:~#
1、启动容器(后台模式)
使用一下命令创建一个以进程方式的运行的容器
runoob@runoob:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
查看所有容器
docker ps -a
三、Docker安装三方环境
1、安装Nginx
访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags
命令来查看可用版本
docker search nginx
获取最新版的Nginx镜像
docker pull nginx:latest
#用daocloud.io 需要安装加速器
docker pull daocloud.io/library/nginx
- 出现下面错误

解决:
- 安装加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
- 换其他版本镜像
查看本地镜像
docker images
运行容器
docker run --name nginx-test -p 8080:80 -d nginx
- 参数说明:
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。

2、安装MySQL
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags
命令来查看可用版本
docker search mysql
拉取MySQL 5.7版 镜像
docker pull mysql:5.7
#用 daocloud.io 需要安装加速器
docker pull daocloud.io/library/mysql

查看本地镜像
docker images
运行容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin mysql
- 参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

进入容器
docker exec -it [CONTAINER ID] /bin/bash
# 连接mysql
mysql -u root -p
#再更新密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
停止MySQL
docker stop [CONTAINER ID]
删除MySQL镜像
docker rmi -f [IMAGE ID]
3、安装Tomcat
镜像地址:https://hub.docker.com/_/tomcat?tab=tags&page=1&ordering=last_updated
拉取镜像
docker pull tomcat
查找tomcat镜像
docker images|grep tomcat
运行容器
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
命令说明:
- -p 8080:8080:将主机的 8080 端口映射到容器的 8080 端口
- -p 8080:8080:将主机的 8080 端口映射到容器的 8080 端口
4、安装reids
访问 Redis 镜像库地址: https://hub.docker.com/_/redis?tab=tags
拉取Reids镜像
docker pull redis:6.2-alpine
查看本地镜像
docker images
运行容器
docker run -itd --name reids-test -p 6379:6379 redis
参数说明:
- -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务
测试连接
docker exec -it [CONTAINER ID] /bin/bash
#连接客户端
redis-cli
5、安装MongoDB
访问 MongoDB 镜像库地址: https://hub.docker.com/_/mongo?tab=tags&page=1
取最新版的 MongoDB 镜像
docker pull mongo:latest
查看本地镜像
docker images
运行容器
docker run -itd --name mongo -p 27017:27017 mongo --auth
参数说明
- -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
- --auth:需要密码才能访问容器服务
连接测试
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
Docker的功能和特性还有很多,各种运行命令、参数等也都有待学习和练习,比如如何管理数据、如何管理网络、如何互相配合工作、如何编写更专业的Dockerfile等。本文先入门为主,以后有时间再慢慢更新关于Docker的知识。

浙公网安备 33010602011771号