1.安装Docker
首先,更新现有的包列表
sudo apt update
接下来安装一些允许童HTTPS才能使用的软件包:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
然后将官方Docker存储库的GPG秘钥添加到您的系统
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
将Doker存储库添加到APT源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
接下来,使用新添加的repo源中的Docker包更新包数据库
sudo apt update
确保docker repo安装而不是默认的Ubunturepo:
apt-cache policy docker-ce
虽然Docker的版本号可能不同,但您还是会看到这样的输出:
docker-ce:
Installed: (none)
Candidate: 18.03.1~ce~3-0~ubuntu
Version table:
18.03.1~ce~3-0~ubuntu 500
500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
最后,安装Docker:
sudo apt install docker-ce
现在应该安装好Docker了,检查它是否正在运行:
sudo systemctl status docker
输出应类似于以下内容,表明该服务处于工作状态:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
Docs: https://docs.docker.com
Main PID: 10096 (dockerd)
Tasks: 16
CGroup: /system.slice/docker.service
├─10096 /usr/bin/dockerd -H fd://
└─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml
2.使用Docker命令
查看所有可用子命令 请输入:
docker
attach Attach local standard input, output, and error streams to a running container
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
export Export a container's filesystem as a tar archive
history Show the history of an image
import Import the contents from a tarball to create a filesystem image
inspect Return low-level information on Docker objects
查看特定命令,请输入:
docker docker-subcommand --help
要查看有关Docker的系统信息 请使用:
docker info
4.使用Docker镜像
Dock容器是从Docker镜像构建的,默认情况下,Docker从Docker Hub中提取镜像,这是一个有Docker管理的Docker镜像市场, 这是Dock的让项目背后的公司。任何人都可以在Docker Hub上托管他们的Docker镜像,所以您只需要将您的应用程序和Linux放在那边托管即可
要检查 新是否可以从Docker Hub访问和下载镜像,请输入:
docker run hello-world
输出下面的内容Docker正常工作:
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:6e8b6f026e0b9c419ea0fd02d3905dd0952ad1feea67543f525c73a0a790fefb
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
......
您可以使用docker带子命令的search命令搜索Docker Hub上可用的镜像。例如,要搜索Ubuntu映像,请输入:
docker search ubuntu
该脚本将对Docker Hub进行抓取,并返回名称与搜索字符串匹配的所有镜像的列表。输出将类似于:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 7917 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 193 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK]
neurodebian NeuroDebian provides neuroscience research s… 50 [OK]
ubuntu-debootstrap debootstrap --variant=minbase --components=m… 38 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 36 [OK]
nuagebec/ubuntu Simple always updated Ubuntu docker images w… 23 [OK]
tutum/ubuntu Simple Ubuntu docker images with SSH access 18
i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 13
ppc64le/ubuntu Ubuntu is a Debian-based Linux operating sys… 12
1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 10 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 6 [OK]
eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 6 [OK]
codenvy/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 4 [OK]
darksheer/ubuntu Base Ubuntu Image -- Updated hourly 4 [OK]
1and1internet/ubuntu-16-apache ubuntu-16-apache 3 [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4 ubuntu-16-nginx-php-5.6-wordpress-4 3 [OK]
1and1internet/ubuntu-16-sshd ubuntu-16-sshd 1 [OK]
pivotaldata/ubuntu A quick freshening-up of the base Ubuntu doc… 1
1and1internet/ubuntu-16-healthcheck ubuntu-16-healthcheck 0 [OK]
pivotaldata/ubuntu-gpdb-dev Ubuntu images for GPDB development 0
smartentry/ubuntu ubuntu with smartentry 0 [OK]
ossobv/ubuntu
...
在OFFICIAL列中,带OK标记的表明这个镜像由公司构建和支持。其他镜像则由个人创建。确定要使用的映像后,可以使用命令pull将其下载到计算机。
执行以下ubuntu命令将官方映像下载到您的计算机:
docker pull ubuntu
要查看已下载到计算机的镜像,请输入:
docker images
输出应类似于以下内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 113a43faa138 4 weeks ago 81.2MB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
5.运行Docker容器
让我们使用Ubuntu 的镜像运行一个 容器 。-i和-t子命令的意思是为您提供一个对容器的交互shell访问:
docker run -it ubuntu
展示如下:
root@4af22e88dc79:/#
6.管理Docker容器
查看服务器中的docker容器:
docker ps
输出类似:
CONTAINER ID IMAGE COMMAND CREATED
查看所有容器运行状态
docker ps -a
输出结果为:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 3 minutes ago Exited (0) About a minute ago hardcore_maxwell
bc48dc240562 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago practical_lehmann
查看最新的容器:
docker ps -l
输出结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 4 minutes ago Exited (0) 2 minutes ago hardcore_maxwell
启动容器,使用docker start ,后跟容器id,命令入下:
docker start 4af22e88dc79
使用docker ps 查看状态:
oot@iZm5e97gc9tpdsp3b9qmhkZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 6 minutes ago Up 48 seconds hardcore_maxwell
要停止正在运行的容器 docker stop 后跟容器ID或者名称 hardcore_maxwell
docker stop hardcore_maxwell
删除容器 docker rm 容器名
docker rm practical_lehmann
使用Docker 运行python程序
创建 dockerpyhton文件并进入文件
mkdir dockerpyhton --》 cd dockerpyhton
创建文件名为demo.py
from random import randint
min_number = int(input("请输入最小值"))
max_number = int(input("请输入最大值"))
if( max_number < min_number ):
print("输入有误")
else:
rnd_number = randint(min_number,max_number)
print(rnd_number)
编写dockerfile文件
文件名为:
FROM python
WORKDIR /demo
COPY . /demo
CMD ["python","demo.py"]
制作镜像
docker build -f ./Dockerfile -t docker_python:1.0 .
# docker_python:1.0 为镜像名
查看镜像并启动容器
docker images
docker run -it 46e1851ea636
Dockerfile 可以指定Python环境和安装requments.txt 使用build 命令来创建镜像 然后docker run启动镜像