在安装Docker之前,首先需要先更新apt,安装CA证书,因为访问Docker用的是https协议
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
添加新的GPG key
sudo apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Ubuntu系统添加Docker源
echo deb https://apt.dockerproject.org/repo ubuntu-xenial main | sudo tee /etc/apt/sources.list.d/docker.list
更新apt包索引
sudo apt-get update
可以用如下方式验证下是否从正确的仓库拉取安装包
apt-cache policy docker-engine
安装Docker
sudo apt-get install docker-engine
开启Docker服务,此后开机docker都是自动开启的。
sudo service docker start
运行Docker官方提供的hello-world程序检测Docker安装运行成功
sudo docker run hello-world
docker默认是只有root才能执行Docker命令,因此我们还需要添加用户权限,创建docker用户组:
sudo groupadd docker
一般提示docker用户组已存在。
添加当前用户到Docker用户组:
sudo usermod -aG docker $USER
$USER表示当前用户名,然后注销,再次登录即可不用root权限使用Docker了。
在Docker上安装Ubuntu:
docker pull ubuntu
docker pull命令表示从Docker hub上拉取Ubuntu镜像到本地;这时可以在终端运行以下命令查看是否安装成功
docker images
docker images表示列出Docker上所有的镜像;镜像也是一堆文件,我们需要在Docker上开启这Ubuntu系统;在启动Ubuntu镜像时,需要先在个人文件下创建一个目录,用于向Docker内部的Ubuntu系统传输文件;命令如下:
cd ~
mkdir build
在Docker上运行Ubuntu系统:
docker run -it -v /home/ghost/build:/root/build --name ubuntu_test ubuntu
这里解析下这个命令参数:
- docker run 表示运行一个镜像;
- -i表示开启交互式;-t表示分配一个tty,可以理解为一个控制台;因此-it可以理解为在当前终端上与docker内部的ubuntu系统交互;
- -v 表示docker内部的ubuntu系统/root/build目录与本地/home/ghost/build共享;这可以很方便将本地文件上传到Docker内部的Ubuntu系统;
- –name ubuntu_test 表示Ubuntu镜像启动名称,即容器名字,如果没有指定,那么Docker将会随机分配一个名字;
- ubuntu 表示docker run启动的镜像文件;
刚安装好的Ubuntu系统,是一个很纯净的系统,很多软件是没有安装的,所以我们需要先更新下Ubuntu系统的源以及安装一些必备的软件。
更新源:https://blog.csdn.net/whoiamX/article/details/82924913
apt-get update
安装vim,ssh
apt-get install vim
apt-get install ssh
行如下脚本开启sshd服务器:
/etc/init.d/ssh start
设置每次登录Ubuntu系统时,都能自动启动sshd服务:
在~/.bashrc最后添加
/etc/init.d/ssh start
配置ssh无密码连接本地sshd服务
ssh-keygen -t rsa #一直按回车键即可
cat root/.ssh/id_dsa.pub >> root/.ssh/authorized_keys
安装JDK:
apt-get install openjdk-8-jdk
在bashrc中配置环境变量:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:$JAVA_HOME/bin
Docker内部的容器做的修改是不会自动保存到镜像的,也就是说,我们把容器关闭,然后重新开启容器,则之前的设置会全部消失,因此我们需要保存当前的配置;为了达到复用配置信息,我们在每个步骤完成之后,都保存成一个新的镜像,然后开启保存的新镜像即可。
docker login
输出相应的用户名和密码即可,登录过一次即可。
查看当前容器的镜像id:
docker ps
docker ps查看正在运行的容器,加上-a可以查看所有启动过的容器。
保存当前镜像:
docker commit $container_id $image_name
输出所有镜像查看是否保存成功:
docker images
让容器在后台运行:
按Ctrl+P, Ctrl+Q退出。
重新进入后台运行的容器:
docker attach $container_id
删除容器
docker rm $container_name
删除镜像:
docker rmi $docker_image_name
上传本地镜像到docker hub:
docker login
docker tag hadoop_installed ghsotkun/hadoop_installed:latest # 需要将镜像名字修改为$dockerhub_name/$image_name 格式
docker push ghsotkun/hadoop_installed
拉取docker hub的镜像
docker pull ghsotkun/hadoop_installed
网友评论