9, 操作系统
1,Busybox: 是一个集成了一百多个最常用的Linux命令和工具的软件工具箱,可运行在POSIX环境的操作系统中,如Linux。
sudo docker search busybox
sudo docker pull busybox
sudo docker images
sudo docker run -it busybox
2,Ubuntu:
sudo docker search -s 10 ubuntu // -s: 只搜素那些被收藏10次以上的镜像
sudo docker search run -it ubuntu:14.04 /bin/bash
# apt-get update curl
# apt-get install curl
# apt-get install apache2
# service apache2 start
# curl 127.0.0.1
10, 支持SSH服务的镜像 |||||实验目的,在任意一台机器上,通过ssh服务来登录容器
基于commit命令创建支持SSH服务的镜像
sudo docker run -it ubuntu:14.04 /bin/bash
# apt-get update
# apt-get install openssh-server
# mkdir -p /var/run/sshd // 要正常启动SSH服务,需要目录/var/run/sshd 存在,需要手动创建
# /usr/sbin/sshd -D & // 启动服务
# netstat -tunlp //查看容器端口状态,22
# sed -ri ' s/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd // 全局替换
# mkdir root/.ssh
# ssh-keygen -t rsa
# id_rsa (输入需要保存key 的文件)
# cat ~/.ssh/id_rsa.pub >authorized_keys
# vi /run.sh
#!/bin/bash
/usr/sbin/sshd -D
# chmod +x run.sh
# exit
sudo docker commit fc1 sshd:ubuntu
sudo docker images
sudo docker run -p 10022:22 -d sshd:ubuntu /run.sh
sudo docker ps -a
登录另一台开启ssh服务的机器,通过宿主机的端口号来登陆该容器。
# ssh 10.0.2.15 -p 10022 // 利用宿主机的IP 和端口来登录容器。
11, Web 服务器与应用
1, Apache服务器
sudo docker run -it ubuntu:14.04 /bin/bash
# apt-get update
# apt-get install apache2
# service apache2 start
# echo ''Asia/Shanghai" > /etc/timezone && \dpkg-reconfigure -f noninteractive tzdata //更改系统的时区设置
# mkdir -p /var/lock/apache2 && mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html //用软连接的方式将首页添加到/var/www/html目录下
# cd /app
# touch index.html
# vi run.sh
#!/bin/bash
/usr/sbin/sshd &
exec apache2 -D FOREGROUND
# chmod +x run.sh
# exit
sudo docker commit 2f1 apache2:ubuntu
sudo docker images
sudo docker run -i -d -p 80:80 -p 103:22 -e APACHE_RUN_USER=www-data -e APACHE_RUN_GROUP=www-data -e APACHE_LOG_DIR=/var/log/apache2 -e APACHE_PID_FILE=/var/run/apache2.pid -e APACHE_RUN_DIR=/var/run/apache2 -e APACHE_LOCK_DIR=/var/lock/apache2 -e APACHE_SERVERADMIN=admin@localhost -e APACHE_SERVERNAME=localhost -e APACHE_SERVERALIAS=docker.localhost -e APACHE_DOCUMENTROOT=/var/www apache2:ubuntu /run.sh
sudo docker exec -it 3ai /bin/bash
3ai# curl 10.0.2.15:80
others# curl 10.0.2.15:80
12, Docker 构建 Mysql 数据库
$su root
pwd: welcome
#docker search -s 10 mysql
#docker pull mysql
#docker images
#docker run -d -p 49455:3306 --name mysql -e MYSQL_ROOT_PASSWORD="welcome" mysql:latest
#docker ps -a
#docker exec -it 0db bash
0db#cd /etc/init.d
0db#mysql -u root -p -h 172.17.0.16 -P 3306
pwd:welcome
mysql>