1. Docker Install
完整Docker安装过程参考链接。下面的安装以Ubuntu系统为例。
1.1 卸载原有安装
| 1 | sudo apt-get remove docker docker-engine docker.io containerd runc | 
1.2 添加Docker源仓库
| 1 | sudo apt-get update | 
1.3 安装Docker Engine
安装最新版本:
| 1 | sudo apt-get update | 
安装指定版本:
| 1 | apt-cache madison docker-ce | 
1.4 验证安装(Optional)
| 1 | sudo docker run hello-world # This command downloads a test image and runs it in a container | 
1.5 卸载Docker
使用以下命令卸载安装:
| 1 | sudo apt-get purge docker-ce docker-ce-cli containerd.io | 
如需彻底删除Docker产生的文件,执行以下命令:
| 1 | sudo rm -rf /var/lib/docker | 
2. Docker配置
本节内容不影响Docker的正常使用,但恰当的配置可以改善Docker使用体验。
2.1 允许非root用户使用docker
因Docker使用Unix socket进行通讯,而在Linux系统中仅root用户可以访问Unix socket,所以通常使用Docker时需要添加sudo命令。为了解决这个问题,需要为系统添加一个名为docker的组,设置该组拥有和root相同的权限,并令当前用户属于该组。
| 1 | sudo groupadd docker # create a group named `docker` | 
若系统之前运行过Docker,修改后可能出现以下错误:
| 1 | WARNING: Error loading config file: /home/user/.docker/config.json - | 
使用下述命令修复:
| 1 | sudo chown "$USER":"$USER" /home/"$USER"/.docker -R | 
本部分内容完整版见链接。
3. Docker使用
3.1 获取Image
List all image:
| 1 | docker images ls | 
产出指定Image:
| 1 | docker image rm {imageName} | 
3.2 创建Container
Create container from image:
| 1 | docker run -d --name={containerName} {imageName} tail -f /dev/null | 
Create container with X11 from image:
| 1 | xhost + | 
显示当前所有运行中的container:
| 1 | docker container ls | 
显示当前已创建的所有container:
| 1 | docker container ls -a | 
删除指定container:
| 1 | docker container rm {containerName} | 
3.3 Container的运行与停止
Start or stop container:
| 1 | sudo docker start/stop {containerName} | 
Open a running container in bash:
| 1 | sudo docker exec -it {containerName} bash | 
3.4 Container和Host间操作
Copy files between host and container:
| 1 | sudo docker cp ~/code/notepanda {containerId}:/code | 
3.5 保存Container
Save container as image:
| 1 | sudo docker commit {containerId} {savedImageName} | 
3.2 Update Image
Update image with container:
| 1 | sudo docker commit {containerId} {savedImageName} | 
3.3 Pull and Push
Login
| 1 | sudo docker login | 
Push localimage to remote:
| 1 | sudo docker push {userName}/{imageName} |