docker启动容器的方式颠覆了我们传统的软件安装的方式
启动一个nginx的容器
拉取安装镜像
docker pull nginx
启动容器,看到输出一段字符串就表示成功了
docker run --name sc-nginx-1 -p 8080:80 -d --cpu-shares 10 --cpus 1 --cpuset-cpus 0 -m 10000000 nginx
-p 8080:80:8080端口映射到80端口
–name:指定容器名字
-d:放到后台运行daemon
–cpu-shares 10:指定使用CPU的核心为10毫(总共1000毫)
–cpus 1:只能使用一个CPU核心
–cpuset-cpu 0:指定编号为0的CPU核心
-m 10000000:只能使用10000000字节的内存(10M)
docker容器可以被限制使用宿主机的CPU、网络、磁盘和内存资源
在浏览器中输入本机IP:8080就会看到如下页面:
docker-proxy是docker提供的一个进程,监听对外发布的端口后,监听发布的端口
[root@sc-docker docker]# netstat -anplut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 5987/docker-proxy
网络结构图:
nginx服务器的IP地址为172.17.0.2
启动一个MySQL的容器
下载指定版本的MySQL镜像
docker pull mysql:5.7.43
启动MySQL容器
docker run --name sc-mysql-1 -e MYSQL_ROOT_PASSWORD=sc123456 -d -p 3306:3306 mysql:5.7.43
-e:指定容器启动的时候指定环境变量的值(设置初始密码)
MySQL服务器的IP地址为172.17.0.3
进入MySQL容器内部
docker exec -it sc-mysql-1 bash
登录
mysql -uroot -psc123456
启动一个golang的容器
拉取镜像
docker pull golang
启动并进入golang容器,退出时删除这个容器
docker run -it --rm --name my-golang-1 golang
启动一个Python的容器
拉取镜像
docker pull python
启动并进入Python容器,退出时删除这个容器
docker run -it --rm --name my-python-1 python
–rm:退出这个容器的时候会自动删除这个容器
启动一个redis的容器
拉取镜像
docker pull redis
启动redis容器
docker run -d --name sc-redis-1 -p 6379:6379 redis
进入redis容器内部
docker exec -it sc-redis-1 bash
安装的redis是一个Debian的系统
root@6d591016bc73:/data# cat /etc/issue
Debian GNU/Linux 11 \n \l
进入redis命令行工具
redis-cli