一、拉取最新Ubuntu镜像

docker image pull是抓取 image 文件的命令:

$ docker pull ubuntu:latest
latest: Pulling from library/ubuntu
d72e567cc804: Pull complete
0f3630e5ff08: Pull complete
b6a83d81d1f4: Pull complete
Digest: sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

二、生成Ubuntu容器并退出

docker container run命令会从 image 文件生成(新建)容器:

$ docker container run -p 8000:3000 -it --privileged=true ubuntu:latest /bin/bash 
root@bc7c3ac008b2:/# exit

上面命令的各个参数含义如下:

  • -p参数:容器的 3000 端口映射到本机的 8000 端口。
  • -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
  • ubuntu:latest:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

 三、查看Ubuntu容器信息

docker ps -a命令会显示所有的容器(包括未运行的):

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc7c3ac008b2 ubuntu:latest "/bin/bash" 28 seconds ago Exited (0) 13 seconds ago 0.0.0.0:8000->3000/tcp zealous_einstein

 四、更改Ubuntu容器为特定名字

$ docker rename bc7c3ac008b2 ubuntu-latest-buildroot
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc7c3ac008b2 ubuntu:latest "/bin/bash" 2 minutes ago Exited (0) 2 minutes ago 0.0.0.0:8000->3000/tcp ubuntu-latest-buildroot

注意:名字可以随便命名,此处博主是用于编译buildroot使用的。 


 五、启动并进入Ubuntu容器

前面的docker container run命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用​docker container start​命令,它用来启动已经生成、已经停止运行的容器文件。

docker container exec命令用于进入一个正在运行的 docker 容器。如果​docker run​命令运行容器的时候,没有使用​-it​参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令。

$ docker container start ubuntu-latest-buildroot 
ubuntu-latest-buildroot
$ docker container exec -it ubuntu-latest-buildroot /bin/bash

 六、查看Ubuntu容器版本

root@bc7c3ac008b2:/# cat /etc/issue
Ubuntu 20.04.1 LTS \n \l

可以看出当前ubuntu:latest版本为20.04.1LTS。


 七、更新Apt源

root@bc7c3ac008b2:/# apt update     
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
Get:4 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [367 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [75.9 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [112 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [1169 B]
Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:11 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [303 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [21.6 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [703 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [88.7 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [4277 B]
Fetched 15.1 MB in 29s (527 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

八、安装常用命令

$ apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils

 九、安装sudo命令并添加普通用户

$ apt install sudo
$ adduser neutionwei

 十、把普通用户添加到sudo

$ visudo

 添加如下内容:

neutionwei  ALL=(ALL:ALL) ALL

十一、切换到普通用户

$ su neutionwei

参考来源:Docker 入门教程